Řešení úlohy - Validace objednávky

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 maKladnouCenu na cena >= 0 pouze pro registrované.