Co je zde splněno
-
Použito striktní porovnání (
===,!==) a bezpečné konverze čísel (toNumber,Number.isFinite) pro správné vyhodnocení i při řetězcových vstupech. -
Refaktor složené podmínky do pojmenovaných mezivýsledků:
maDostatekPolozek,maKladnouCenu,splnujeCenovyLimitNereg,jePlnolety,neniZakazObjednavky. -
Aplikovány guard clauses pro časné ukončení a vyšší čitelnost.
-
Respektována pravidla: počet položek > 0, cena > 0, neregistrovaný ≥ 300 Kč, věk ≥ 18, žádný globální zákaz.
-
Ošetřeny případy
null/špatný typ (short-circuit a kontrola finiteness), aby se předešlo chybám při čtení vlastností a porovnávání typů.
Poznámky
Pravidlo „registrovanému stačí libovolná cena“ je interpretováno ve vazbě na základní podmínku „cena > 0“: registrovaný nepotřebuje limit 300 Kč, ale stále musí mít kladnou cenu (> 0).
Pokud by se měla připustit i nulová cena pro registrované (např. věrnostní 100% sleva), upravte
maKladnouCenunacena >= 0pouze pro registrované.