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
- Přejděte do sekce Suroviny.
- Klikněte na Přidat surovinu.
- Vyplňte název, výchozí jednotku a zaškrtněte alergeny.
- Klikněte na Vytvořit.
Pole suroviny
| Pole | Popis | Příklad |
|---|---|---|
| Název | Jednoznačný název suroviny. V rámci jednoho tenanta musí být unikátní. | Hovězí maso zadní |
| Výchozí jednotka | Mě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 jednotku | Volitelná 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 |
| Alergeny | Sada čí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á vg), 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
- Přejděte do sekce Recepty.
- Klikněte na Přidat recept.
- Vyplňte základní údaje (název, popis, gramáže porcí).
- 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).
- Klikněte na Vytvořit.
Pole receptu
| Pole | Popis | Příklad |
|---|---|---|
| Název | Unikátní název receptu v rámci tenanta. | Hovězí guláš s knedlíkem |
| Popis | Volitelný delší popis — technologický postup, poznámky, kód původu. | Recept dle kuchařky ZŠ, kód 26-OK-0033 |
| Interní poznámka | Volitelná 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 porce | Jednotka, ve které se měří velikost porce (g nebo ml). | g |
| Plná porce | Velikost plné porce v gramech / mililitrech (koeficient 1,00 — dospělá porce). | 250 |
| Velikost porce podle věkové kategorie | Jeden řá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) |
| Suroviny | Seznam 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:
| Sestava | Co z velikosti porce vychází |
|---|---|
| Denní výdejka | navážka — kolik se má navážit na výdejní místo |
| Dodací list | navážka receptur, i v PDF posílaném výdejnímu místu |
| Podklad pro vaření a Nákupní žádanka | množ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ídla | ruční velikost na receptuře | |
|---|---|---|
| Co určuje | výchozí velikost porce pro celý druh jídla | konkrétní velikost pro jednu recepturu |
| Záběr | všechny receptury toho druhu jídla, i budoucí | jedna receptura |
| Přednost | ustoupí 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
- Klikněte na řádek receptu — otevře se pravý panel.
- Editujte název, popis nebo porce přímo v polích.
- 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ř.
ml→ks), 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.
- 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ř.
- 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í.
- Přejděte do sekce Recepty.
- Klikněte na Import z CSV v záhlaví.
- 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).
- Vyberte soubor a klikněte na Importovat.
- 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:
| Sloupec | Povinný | Popis |
|---|---|---|
recipe_name | ano | Název receptu. Řádky se stejným recipe_name se sloučí do jednoho receptu s více surovinami. |
ingredient_name | ano | Název suroviny. Pokud surovina v knihovně neexistuje, založí se nová (s alergeny z tohoto řádku). |
unit | ano | Jednotka množství: g, kg, ml, l, ks. Běžné varianty zápisu (lt, litr, kus) se automaticky převedou na kanonický tvar. |
quantity_per_10 | ano | Množství na 10 porcí (desetinné číslo, čárka i tečka jsou OK). |
allergens | ne | Čísla alergenů 1—14 oddělená čárkou v uvozovkách (např. "1,7"). Prázdné = bez alergenů. |
kitchen_name | ne | Ná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_namekuchyni 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 jakolt). - Číslo s neplatným formátem —
quantity_per_10musí 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.