Recepty a suroviny

Recepty a suroviny tvoří knihovnu, ze které kuchyně připravuje jídelní lístek. Recept popisuje, jaké suroviny a v jakém množství jsou potřeba na 10 porcí. Suroviny (ingredience) jsou sdílené napříč všemi recepty — stačí je založit jednou. Tato stránka popisuje, jak knihovnu spravovat ručně i hromadně přes CSV import.

Tip: Než začnete zakládat recepty, projděte si nejdřív seznam Suroviny. Společná knihovna surovin znamená, že “Hovězí maso” je v celém systému jeden záznam s jednou sadou alergenů — a jakákoli oprava se promítne do všech receptů, které ho používají.

Suroviny

Sekce Suroviny (boční menu → Suroviny) je sdílený katalog ingrediencí. Každá surovina má název, výchozí jednotku a seznam alergenů 1—14 dle EU legislativy.

Vytvoření suroviny

  1. Přejděte do sekce Suroviny.
  2. Klikněte na Přidat surovinu.
  3. Vyplňte název, výchozí jednotku a zaškrtněte alergeny.
  4. Klikněte na Vytvořit.

Pole suroviny

PolePopisPříklad
NázevJednoznačný název suroviny. V rámci jednoho tenanta musí být unikátní.Hovězí maso zadní
Výchozí jednotkaMěrná jednotka suroviny — převezme se do každého receptu, který surovinu použije. Drží se u suroviny, v receptu ji ručně nepřepisujete. Povolené hodnoty: g, kg, ml, l, ks.g
Cena za jednotkuVolitelná nákupní cena suroviny v Kč za nákupní jednotku (kg, l nebo ks). Slouží k výpočtu kalkulace nákladů receptu. U každé ceny se eviduje datum poslední aktualizace.89,90 Kč / kg
AlergenySada čísel 1—14 podle přílohy II nařízení EU 1169/2011 (lepek, vejce, mléko, ryby…).1, 7

Cena suroviny a kalkulace nákladů

U každé suroviny můžete zadat nákupní cenu v Kč za nákupní jednotku (kg, l nebo ks). Cena je čistě interní informace pro controlling — nikde se nezobrazuje rodičům ani strávníkům. Z cen surovin se pak na receptu počítá kalkulace nákladů (kolik stojí suroviny na porci).

Nákupní vs. receptová jednotka: cena se zadává za nákupní jednotku (kg / l / ks), ale recept spotřebovává v gramech / mililitrech / kusech. Převod probíhá automaticky v rámci stejné rodiny (kg ↔ g, l ↔ ml, ks ↔ ks). Surovinu, kterou nakupujete v jiné rodině, než ji recept spotřebovává (např. vejce kupujete na ks, ale recept je počítá v g), systém ve výpočtu označí jako nesedící jednotku a kalkulaci nezapočítá — viz níže.

Úprava a archivace

Kliknutí na řádek otevře pravý panel s detailem. Editujete vlastnosti přímo v panelu a uložíte tlačítkem Uložit. Surovinu lze Archivovat (přes ikonu koše) — recepty, které ji už používají, zůstanou v platnosti, ale v nabídce při zakládání nového receptu se archivovaná surovina neobjeví. Tvrdé smazání není v UI dostupné, protože by porušilo historii receptů.

Pozor na alergeny: Změna alergenů na surovině se projeví v budoucím zobrazení receptů, ale již zveřejněná jídla v jídelním lístku alergeny přebírají z konkrétního jídla (ne suroviny). Pokud opravujete chybný alergen po zveřejnění, projděte i odpovídající jídla v jídelníčku.

Recepty

Sekce Recepty (boční menu → Recepty) je knihovna celých receptů. Každý recept obsahuje seznam surovin s množstvím na 10 porcí — tato hodnota se pak používá pro výpočet denní objednávky a spotřebního koše podle skutečného počtu objednaných porcí.

Vytvoření receptu

  1. Přejděte do sekce Recepty.
  2. Klikněte na Přidat recept.
  3. Vyplňte základní údaje (název, popis, gramáže porcí).
  4. Postupně přidávejte suroviny tlačítkem Přidat surovinu: vyberte surovinu z katalogu a zadejte množství na 10 porcí. Měrná jednotka se převezme přímo ze suroviny (u položky se jen zobrazí, needituje se).
  5. Klikněte na Vytvořit.

Pole receptu

PolePopisPříklad
NázevUnikátní název receptu v rámci tenanta.Hovězí guláš s knedlíkem
PopisVolitelný delší popis — technologický postup, poznámky, kód původu.Recept dle kuchařky ZŠ, kód 26-OK-0033
Interní poznámkaVolitelná interní poznámka pro kuchaře / operátora. Nezobrazuje se strávníkům ani rodičům. Viz Interní poznámka níže.Steril. zelenina: hrubá 500 g = čistá 300 g
KuchyněVolitelná kuchyně, kde se receptura připravuje. Pole se zobrazuje jen provozům s víc než jednou kuchyní. Prázdné = připravuje se ve všech. Viz Kuchyně, kde se receptura připravuje níže.Výdejna Sever
Jednotka porceJednotka, ve které se měří velikost porce (g nebo ml).g
Plná porceVelikost plné porce v gramech / mililitrech (koeficient 1,00 — dospělá porce).250
Velikost porce podle věkové kategorieJeden řádek za každou věkovou kategorii, kterou máte nastavenou. Můžete hodnotu nechat Auto — systém ji dopočítá z plné porce podle koeficientu kategorie — nebo ji tlačítkem Upravit přepsat ručně. Viz Velikost porce podle věkové kategorie níže.4-6 let: 125 (auto), 7-10 let: 175 (auto)
SurovinySeznam položek <surovina, množství na 10 porcí, jednotka>.Hovězí maso 2,5 kg; Cibule 0,8 kg; …

Kuchyně, kde se receptura připravuje

Máte-li v provozu víc kuchyní, může každá z nich totéž jídlo vyrábět jinak — jedna si knedlíky dělá sama, druhá je kupuje hotové. Takové jídlo pak má dvě receptury, každou pro jinou kuchyni.

U receptury proto můžete vybrat kuchyni, kde se připravuje. Slouží to k jedinému účelu: Nákupní žádanka pro danou kuchyni pak obsahuje jen suroviny receptur, které ta kuchyně opravdu vaří. Bez toho by si každá kuchyně objednávala i suroviny té druhé.

Pravidla jsou jednoduchá:

  • Prázdné pole = receptura se připravuje ve všech kuchyních. Takto se chovaly všechny receptury dřív, takže existující data nemusíte nijak upravovat. Provozu s jednou kuchyní se pole vůbec nezobrazuje.
  • Receptura bez určené kuchyně projde vždycky — objeví se v žádance každé kuchyně, protože ji vaří všechny.
  • Jídelníček to neovlivňuje. Při sestavování jídelníčku se nabízejí všechny receptury bez ohledu na kuchyni.
  • Seznam receptur se ve výchozím stavu nefiltruje. Vidíte všechny receptury a u každé sloupec Kuchyně; přepínačem nad seznamem si můžete zobrazit jen jednu kuchyni.
  • Kopie receptury přebírá kuchyni originálu.
  • Archivovanou kuchyni už nelze nově přiřadit, ale receptura, která ji má nastavenou z dřívějška, jde dál normálně upravovat — v poli se zobrazí s poznámkou (archivovaná) a můžete ji ponechat nebo vymazat.

Pozor při volbě „Všechny kuchyně” v žádance: žádanka za celý provoz sečte receptury všech kuchyní. Máte-li dvě varianty téhož jídla (knedlíky vlastní i kupované), objeví se v součtu obě. Je to správně — celý provoz opravdu nakupuje obojí — ale pro nákup za jednu kuchyni si kuchyni vyberte.

Velikost porce podle věkové kategorie

Velikosti porcí se zadávají za věkovou kategorii, ne za koeficient. Vidíte tedy řádky „4-6 let”, „7-10 let” a tak dál — přesně ty kategorie, které máte v Nastavení → Věkové kategorie.

Výchozí hodnota každého řádku se dopočítá jako plná porce × koeficient kategorie. Koeficient v nastavení tak funguje jako generátor výchozích velikostí; jakmile hodnotu přepíšete ručně, platí vaše hodnota a koeficient se u té kategorie už nepoužije.

Ruční přepis je určený pro neproporcionální jídla. Klasický případ je houska nebo rohlík: dostane ho celý každý, ne půlku. Nastavíte plnou porci na 1 ks a u všech kategorií přepíšete velikost na 1.

Z velikosti porce se pak počítá všechno ostatní, takže se sestavy nemohou rozejít:

SestavaCo z velikosti porce vychází
Denní výdejkanavážka — kolik se má navážit na výdejní místo
Dodací listnavážka receptur, i v PDF posílaném výdejnímu místu
Podklad pro vaření a Nákupní žádankamnožství surovin — škáluje se za recepturu, takže houska „1 ks pro všechny” nakoupí suroviny na plný počet strávníků, ne na zmenšené porce
Spotřební košgramáž připsaná strávníkovi

Vztah k vypínači koeficientu u druhu jídla

Chcete-li stejnou porci pro všechny u celého druhu jídla (typicky u polévky nebo přesnídávky), je jednodušší vypnout věkový koeficient v Nastavení → Druhy jídla. Ruční přepis na receptuře řeší jedno konkrétní jídlo.

Obojí lze kombinovat a platí jasné pořadí:

vypínač u druhu jídlaruční velikost na receptuře
Co určujevýchozí velikost porce pro celý druh jídlakonkrétní velikost pro jednu recepturu
Záběrvšechny receptury toho druhu jídla, i budoucíjedna receptura
Přednostustoupí ruční hodnotěvyhrává

Vypnutí koeficientu tedy nezaručuje stejné porce. Má-li receptura u některé kategorie zadanou vlastní hodnotu, řídí se dál jí. Chcete-li se vrátit k výchozímu chování, přepněte řádek zpět na Auto.

Vypínač zůstává potřeba i po zavedení velikostí porcí za kategorii: pravidlo „tenhle chod se dávkuje všem stejně” patří k druhu jídla, ne k receptuře. Táž receptura navíc může být použitá pod víc druhy jídla, kde by jedna ruční hodnota nestačila.

Množství na 10 porcí (quantity_per_10)

Všechna množství v receptu se zadávají na 10 porcí. Důvod je praktický: většina školních norem a kuchařek je psaná pro desítkové násobky a systém pak dopočítá skutečnou potřebu podle počtu objednaných porcí pro daný den.

Pokud má váš recept v podkladech jiný základ (např. na 1 porci nebo na 100 porcí), přepočtěte hodnotu na 10 porcí ručně před zadáním. Příklad: recept psaný na 100 porcí udává 25 kg masa → zadejte 2,5 kg.

Úprava receptu a změna surovin

  1. Klikněte na řádek receptu — otevře se pravý panel.
  2. Editujte název, popis nebo porce přímo v polích.
  3. V sekci Suroviny můžete:
    • Nahradit surovinu jinou (ikona ↻ vedle řádku) — vyberete náhradní surovinu a zadáte množství. Měrná jednotka se automaticky převezme z nové suroviny; když se změní rodina jednotek (např. mlks), pole množství se vynuluje, ať nezůstane nesmyslná hodnota po předchozí surovině.
    • Odebrat surovinu z receptu (ikona koše vedle řádku).
    • Přidat novou surovinu přes formulář Přidat surovinu.
  4. Klikněte na Uložit.

Pozor: Úprava receptu se okamžitě promítne do všech budoucích reportů (denní objednávka, dodací listy, spotřební koš). Reporty pro již minulé dny zůstávají historicky věrné — počítají se v okamžiku generování a uchovávají se jako PDF.

Interní poznámka

Ke každé receptuře můžete připojit interní poznámku — volné textové pole pro vaši potřebu. Je čistě interní: nezobrazuje se strávníkům, rodičům ani nikde v jídelním lístku. Hodí se na:

  • zpětné informace pro kuchaře — např. hrubá vs. čistá váha u sterilované zeleniny („hrubá 500 g = čistá 300 g”), postup přípravy, na co si dát pozor;
  • poznámky ke změnám receptury — proč a kdy jste něco upravili, ať se v tom později vyznáte.

Poznámku vidíte a editujete v detailu receptu, pod popisem. Uloží se spolu se zbytkem receptu tlačítkem Uložit.

Kdo naposledy upravil: pod poznámkou systém automaticky ukazuje „Naposledy upravil: <jméno> · <datum>” — bere se z přihlášeného uživatele při každém uložení, takže nemusíte autora a datum psát ručně. U receptů založených importem nebo z ukázkových dat se razítko nezobrazuje.

Tisk receptury

Recept si můžete vytisknout a vzít s sebou do kuchyně — pro ruční přepočty, kontrolu nebo poznámky k úpravám. V detailu receptu otevřete nabídku v záhlaví panelu a zvolte Tisk. Otevře se tisková stránka receptu s tlačítkem Tisk (tiskne se na A4 na výšku).

Na výtisku najdete:

  • hlavičku s názvem receptu, kuchyní, datem tisku a počtem surovin,
  • velikosti porcí za jednotlivé věkové kategorie včetně informace, zda je hodnota zadaná ručně, nebo dopočítaná ze základní porce,
  • seznam surovin s množstvím na 10 porcí, alergeny a cenou za 10 porcí,
  • prázdný sloupec Poznámka na ruční zápisky při přepočtu — ten je jen na papíře, na obrazovce se nezobrazuje,
  • alergeny celé receptury (sjednocení alergenů všech surovin),
  • kalkulaci nákladů (cena na porci a na 10 porcí; u neúplné kalkulace se místo totalu vytiskne upozornění — viz Kalkulace nákladů),
  • interní poznámku, pokud je vyplněná.

Pozor na interní poznámku: tiskne se včetně ní. Je určená pro provoz, ne pro rodiče a strávníky — výtisk podle toho neposílejte ven.

Množství surovin se tiskne tak, jak je v receptu uložené, tedy na 10 porcí. Přepočet na jiný počet porcí zatím tisková stránka nenabízí — dělá se ručně na papíře.

Duplikace receptu

Potřebujete-li novou variantu existujícího receptu (bezlepkovou verzi, sezónní obměnu, recept s jiným postupem), nemusíte vše zadávat znovu. V detailu receptu otevřete nabídku v záhlaví panelu a zvolte Duplikovat.

Vznikne kopie s názvem „<původní název> (kopie)” (při opakování „(kopie 2)”, „(kopie 3)” atd.), do které se přenese popis, velikosti porcí i všechny suroviny s množstvím a jednotkami. Kopie se rovnou otevře k úpravě, takže můžete hned změnit název a doladit suroviny. Kopie není navázaná na žádné jídlo ani jídelníček — začíná jako samostatný, volný recept.

Tip: Duplikace je nejrychlejší cesta, jak obejít pravidlo unikátního názvu — viz FAQ níže. Novou kopii jen přejmenujte (např. Hovězí guláš (bez lepku)) a upravte suroviny.

Kalkulace nákladů

V detailu receptu najdete panel Kalkulace, který spočítá náklad na suroviny z aktuálních cen surovin. U každé položky vidíte její cenu na porci i na 10 porcí, dole pak celkový náklad na porci a na 10 porcí za celý recept. Výpočet je živý: jakmile upravíte cenu suroviny nebo množství v receptu, kalkulace se přepočítá z aktuálních hodnot (nedrží se historický snímek).

Neúplná kalkulace: dokud má aspoň jedna surovina v receptu nezadanou cenu (nebo nesedící nákupní jednotku), systém celkový náklad neukáže a místo něj zobrazí upozornění s počtem chybějících cen. Polovičaté číslo, které vypadá autoritativně, by bylo zavádějící — proto se total objeví, až je recept nacalkulovaný kompletně. Dílčí ceny u jednotlivých surovin vidíte i tak.

Kalkulace je zatím jen nákladová — ukazuje, kolik stojí suroviny. Marže vůči prodejní ceně (z ceníku) je samostatná věc a v této verzi není součástí kalkulace.

Kalkulace celého jídla

Jedno jídlo bývá složené z několika receptů (guláš + knedlík), takže dřív bylo potřeba sčítat jejich kalkulace ručně. Detail jídla v sekci Jídla má proto vlastní panel Kalkulace: ukáže náklad na porci a na 10 porcí za celé jídlo a pod ním řádek za každý přiřazený recept, aby bylo vidět, z čeho se součet skládá.

Platí tu stejná pravidla jako u receptu, jen o patro výš:

  • Neúplná kalkulace se nesčítá. Stačí jedna surovina bez ceny v jednom z receptů a celkový náklad za jídlo se neukáže — místo něj je upozornění s počtem chybějících cen a odkaz na doplnění. Recepty, které spočítat jdou, svou cenu ukazují dál.
  • Součet sedí na řádky nad ním. Sčítají se zaokrouhlené ceny jednotlivých receptů, přesně ty, které jsou vidět v tabulce, aby se celkové číslo nelišilo o haléře od toho, co si sečtete očima.
  • Jídlo bez přiřazených receptů neukáže „0 Kč”, ale zprávu, že není z čeho počítat. Nula by tvrdila něco o jídle, ne o chybějících datech.
  • Kalkulace odpovídá uloženému stavu. Když v panelu zaškrtnete další recept, číslo se posune až po uložení.

Panel je jen ke čtení — nic v něm needitujete a otevření jídla kvůli kalkulaci ho neoznačí jako rozpracované.

Archivace receptu

Recept lze archivovat tlačítkem v záhlaví detailu. Archivovaný recept se neukáže při sestavování jídelního lístku, ale historická data (kde byl použit v minulých jídelnících) zůstávají zachována. Tvrdé smazání není v UI dostupné.

Hromadný import receptů z CSV

Pokud máte recepty v Excelu, ze starého systému, nebo jste je dostali jako CSV od kolegy, můžete je naimportovat hromadně místo ručního zadávání.

  1. Přejděte do sekce Recepty.
  2. Klikněte na Import z CSV v záhlaví.
  3. Připravte si CSV soubor podle níže uvedeného formátu (případně si stáhněte Ukázkový CSV, který je odkazem přímo na stránce importu).
  4. Vyberte soubor a klikněte na Importovat.
  5. Po dokončení uvidíte souhrn — kolik řádků prošlo, kolik receptů a surovin vzniklo, a případné chyby s číslem řádku.

Formát CSV

Soubor musí být kódovaný v UTF-8 (diakritika!) a obsahovat hlavičku s těmito sloupci:

SloupecPovinnýPopis
recipe_nameanoNázev receptu. Řádky se stejným recipe_name se sloučí do jednoho receptu s více surovinami.
ingredient_nameanoNázev suroviny. Pokud surovina v knihovně neexistuje, založí se nová (s alergeny z tohoto řádku).
unitanoJednotka množství: g, kg, ml, l, ks. Běžné varianty zápisu (lt, litr, kus) se automaticky převedou na kanonický tvar.
quantity_per_10anoMnožství na 10 porcí (desetinné číslo, čárka i tečka jsou OK).
allergensneČísla alergenů 1—14 oddělená čárkou v uvozovkách (např. "1,7"). Prázdné = bez alergenů.
kitchen_nameneNázev kuchyně, kde se receptura připravuje — musí přesně odpovídat některé nearchivované kuchyni provozu (na velikosti písmen nezáleží). Prázdné = všechny kuchyně. Neznámý název řádek odmítne. Sloupec lze použít jen společně s allergens.

Kuchyni uvádějte u všech řádků jedné receptury stejnou. Řádky jsou po surovinách, takže se název kuchyně opakuje u každé z nich. Pokud se řádky téže receptury neshodnou, import ten neshodný řádek odmítne a vypíše chybu — místo aby recepturu tiše přesunul podle posledního řádku.

Soubor bez sloupce kitchen_name kuchyni nemění. Starší čtyř- a pětisloupcové soubory jdou importovat dál a přiřazení kuchyně u existujících receptur nechají být — opakovaný import starého souboru vám tedy nastavení nesmaže.

Příklad

recipe_name,ingredient_name,unit,quantity_per_10,allergens
Hovězí guláš,Hovězí maso,kg,2.5,
Hovězí guláš,Cibule,kg,0.8,
Hovězí guláš,Pšeničná mouka,g,30,"1"
Bramborová polévka,Brambory,kg,3,
Bramborová polévka,Mléko,ml,200,"7"

S určením kuchyně (šest sloupců):

recipe_name,ingredient_name,unit,quantity_per_10,allergens,kitchen_name
Knedlík vlastní,Pšeničná mouka,g,600,"1",Centrální kuchyně
Knedlík kupovaný,Knedlík mražený,ks,10,"1",Výdejna Sever
Bramborová polévka,Brambory,kg,3,,

Co se stane při konfliktu: Pokud recept se stejným názvem už existuje, import ho přeskočí (neaktualizuje stávající). Pokud surovina už v knihovně existuje, použije se ta stávající a její alergeny — alergeny ze CSV se na existující surovinu nepřepíšou. Pro přepsání musíte buď upravit recept v UI, nebo nejdřív archivovat starý záznam.

Časté chyby při importu

  • Špatné kódování — soubor uložen jako Windows-1250 nebo Latin-2. Otevřete v Excelu a uložte jako CSV UTF-8.
  • Středník místo čárky — evropské Excely často exportují CSV se středníkem. Importér čeká čárku.
  • Neznámá jednotka — povolené jsou jen g, kg, ml, l, ks (a jejich běžné varianty jako lt).
  • Číslo s neplatným formátemquantity_per_10 musí být kladné číslo. Tisíce neoddělujte mezerou.
  • Alergen mimo rozsah — povolená jsou čísla 1—14.

Časté otázky

Jak alergeny v receptu souvisí s alergeny v jídelním lístku?

Surovina nese sadu svých alergenů (např. mléko = 7). Jídlo v jídelníčku má vlastní sadu alergenů, kterou si operátor vyplňuje ručně při zadávání jídla. Doporučený postup je sjednotit obě množiny — vezmete alergeny ze všech surovin v receptu a stejné je vyplníte do jídla. Systém vám v této věci nepomáhá automaticky, takže pozor: spojení je jen v hlavě operátora.

Můžu mít dva recepty se stejným názvem?

Ne, název receptu musí být v rámci tenanta unikátní. Pokud potřebujete variantu, použijte sufix (např. Hovězí guláš (light), Hovězí guláš — bez lepku). Nejrychleji variantu vytvoříte přes Duplikovat v nabídce detailu receptu — viz Duplikace receptu — a novou kopii jen přejmenujete.

Jak se z receptu počítá objednávka surovin?

Při generování denní objednávky systém vezme všechny objednávky na daný den, spočítá počet porcí pro každé jídlo, najde recept jídla a vynásobí quantity_per_10 poměrem (počet porcí / 10). Výsledek sečte přes celé jídlo / kuchyni / trasu. Viz také Kuchyňské operace.

Mám stovky receptů ve starém systému — jde to nějak rychleji než CSV?

Pro masivní migraci (stovky receptů z PDF výpisů nebo databází starého systému) si zažádejte u administrátora — existují interní importní skripty, které dokáží recepty převzít přímo z PDF výpisů. Tyto skripty pouští administrátor v rámci on-boardingu nového tenanta a nejsou součástí uživatelského UI.