Cena plus marza plus vat

0

Witam buduje sobie mały skrypcik który będzie przeliczał ceny netto, za zadanie ma podnieść cenę pierw o marże potem o VAT, bynajmniej tak trzeba robić, lecz liczy jakoś dziwnie oto on za wszelkie podpowiedzi dziekuję

	if ($cen < 31) {
	$marza = $cen * 0.30;
    $cm = $cen + $marza;
    $vat = $cm * 0.23;	
	$cv = $cm + $vat;
$cena = $cv;
	}
	if ($cen < 76) {
	$marza = $cen * 0.25;
    $cm = $cen + $marza;
    $vat = $cm * 0.23;
	$cv = $cm + $vat;
$cena = $cv;
	}
	if ($cen < 151) {
	$marza = $cen * 0.20;
    $cm = $cen + $marza;
    $vat = $cm * 0.23;
	$cv = $cm + $vat;
$cena = $cv;
	}
	if ($cen < 1501) {
	$marza = $cen * 0.15;
    $cm = $cen + $marza;
    $vat = $cm * 0.23;
	$cv = $cm + $vat;
$cena = $cv;
	}
	if ($cen > 1501) {
	$marza = $cen * 0.03;
    $cm = $cen + $marza;
    $vat = $cm * 0.23;
	$cv = $cm + $vat;
$cena = $cv;
	}
0

zapomniałem dodać błędu, mam np towar który przy marży 30% musi mieć koło 43 złotych a u mnie liczy 38 o 5 zeta za nało tak jakby wszędzie naliczał 17% marze której wg nie ma,

0

jeśli $cen < 31, to spełnione są wszystkie warunki z wyjątkiem ostatniego.
użyj else-if albo switch-case

0

Kolejna rzecz, że przy cenie równej dokładnie 1501, nic nie obliczy.

1

Używaj zasady DRY:

if($cen<31) $mul=0.30;
else if($cen<76) $mul=0.25;
else if($cen<151) $mul=0.20;
else if($cen<1501) $mul=0.15;
else $mul=0.03;
$marza=$cen*$mul;
$cm=$cen+$marza;
$vat=$cm*0.23;
$cv=$cm+$vat;
0

Ja bym radził zrobić jakiś słownik i pobierać z niego procent marży, bo teraz to masz straszny nadmiar kodu.

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