Antik - zamítání knih při příjmu
Pokud se komukoliv nebude něco zdát, dejte vědět. Než se rozhodneme jak dál, rád bych dokument udržoval aktuální. Do řešení zahrnuti:
- Kuba a Matyáš - Matematici
- Daniel - Výkup antiků
- Viki - CME
- Honza - doc
As-Is stav
Teď to funguje tak, že zadavač (brigádník) zadá výkup zákazníka do systému tak, že jednotlivé knihy objeví v následujícím seznamu.

Na předchozí obrazovce je důležitá špatně čitelná tabulka, pro jistotu je ještě na dalším obrázku. V tabulce je seznam knih, konkrétních kusů a informace o nich. Je možné, že jsme knihu ze seznamu museli zavést, protože neexistovala v naší databázi.

Na obrazovce je sloupec "Máme zájem?", ve kterém je ano, pokud knihu aktuálně nemáme na skladě. Ne, pokud knihu už máme zavedenou a máme aspoň jeden kus na skladě. Aktuálně se sloupec nepoužívá.
Cílový stav
Cíl je snížit množství skladových zásob a snížit množství ležáků. Toho dosáhneme tak, že chceme umět při zadávání výkupu vyřadit knihy, u kterých víme, nebo tušíme, že je nelze rozumně prodat.
Návrh řešení
Obchodní podmínky
Obchodní podmínky nám umožňují likvidovat odmítnuté knihy, dokonce ani nemusíme říkat zákazníkovi, že si odmítnuté knihy může vyzvednout. Pouze předpokládáme, že se ukáže jako nezbytné nějakou formu vyzvedávání odmítnutých knih zavést. I když to není v podmínkách přímo popsané, tak na to možná mají právo už teď, i když to přímo nezmiňujeme.
Jak to bude fungovat
Pracovní postup bude vypadat následovně:
- Antikvariátní knihu zavedeme do přijímací tabulky, systém nám řekne, jestli ji chceme nebo nechceme přijmout.
- Pokud ji přijmout chceme, pak postupujeme jako teď.
- Pokud ji nechceme přijmout, pak ji dáme do speciální přepravky s nepřijatými kusy.
- Po dokončení zpracování příjmu a pokud je v přepravce s nepřijatými kusy aspoň jedna kniha, pak:
- CME nám s první odmítnutou knihou vytiskne štítek na přepravku
- přepravku označíme datem a číslem výkupu a odneseme do skladu odmítnutých knih, který zřídíme v bývalých kytkách.
Sklad s odmítnutými knihami musíme průběžně čistit. Pravidelně každý týden projdeme uskladněné přepravky s nepřijatým výkupem, a pokud je datum starší než 30 dní, pak přepravku vezmeme, strhneme označení a obsah zlikvidujeme. Zlikvidovat knihu znamená, že ji podle aktuálních možností rozdáme na pobočce, vyhodíme do papíru, přibalíme zdarma, nebo spálíme.
Pokud se zákazník nějakou náhodou ozve, že chce knihu zpět, pak mu nabídneme, ať si ji u nás v Modřanech vyzvedne. Pro to aktuálně není proces, budeme to řešit kus od kusu. Je třeba počítat s tím, že pro vyzvednutí odmítnutých knih potřebujeme až několik hodin času na jejich dohledání. Pokud se zákazník ozve po likvidaci, pak mu řekneme, že jsme odmítnute knihy v souladu s obchodníma podmínkama zlikvidovali.
Tištěný štítek bude obsahovat informace:
- číslo výkupu
- datum výkupu
- datum likvidace
Co musíme upravit
Na obrazovce pro zavádění vezmeme sloupec "Máme zájem?" a jeho hodnotami se při výkupu začneme řídit. Je pravděpodobné, že bude třeba sloupec přejmenovat nebo jinak zvýraznit, aby ho kolegové na příjmu neignorovali.

Kdykoliv do tabulky přibude záznam s knihou na vykoupení, vyhodnotí se, jestli je přidaná kniha vhodný kandidát na výkup, nebo ne. Pokud je kniha odmítnutá a je první odmítnutá v celém výkupu, pak se k ní vytiskne štítek na odmítnuté knihy.
Technický návrh
Nová MS
Zavedeme novou microservice (MS), která bude jediným místem rozhodování, jestli knihy přijmout nebo nepřijmout k výkupu. MS zapojíme následovně:

MS:
- může běžet na mathboxu
- matematická část je v Pythonu, zbytek by měl být taky
- bude poskytovat HTTP/REST/JSON službu, která
- přijme informace o knize, ve formátu JSON, na poslání se nabízejí data:
- jméno - povinné jméno knihy
- rokVydani - volitelné, většinou uvedené bude
- ean - volitelné
- prodejnost - je třeba definovat, jak má být uvedena, preferujeme seznam prodejů, aktuální cenu a volitelné datum prodeje
- naskladnění - pole dat, kdy jsme přijali antikové kusy
- prodejnostNoveKnihy - kdy se prodaly kusy nové knihy
- kolik kusů antiku máme na skladě
- kolik kusů nového zboží máme na skladě
- Kolik kusů jsme již spálili, protože se nikdy neprodaly?
- Co si kluci řeknou dalšího
- služba bude vracet ano/ne odpověď
- pokud služba vrátí nějakou HTTP chybu 4xx/5xx nebo server nebude vůbec dostupný, pak knihu vykoupíme a informaci o chybě:
- zapíšeme do chybového logu
- pošleme e-mailovou notifikaci, že služba lehla
- orientační rychlost odpovědi bude do 2 [sec].
CME úpravy
Zde upravíme:
- Když přibyde řádek v tabulce přijatých knih, zavolá se nová služba, která po obdržení odpovědi ukáže ANO/NE.
- V případě první odmítnuté knihy budeme tisknout štítek
Open Points, Limitations, Out of Scope
- Pro knihy, co dáme do skladu nepřijatých knih, nemáme další přepravky ani banánovky, použijeme tedy stávající banánovky a uvidíme.
- Zákazníkovi neplánujeme posílat informaci, jaké knihy jsme přijali. Dnes to není nutné, protože přijímáme všechny.
- Po spuštění procesu je třeba počítat s tím, že bude vyšší chybovost.
- Obchodní podmínky aktuálně neobsahují čistě popsaný proces pro fyzické vyzvednutí odmítnutých knih.
- Úprava obchodních podmínek není připravená ani na ní aktuálně nikdo nepracuje. (O tom ví Taylor).
- TODO - Jak to budeme testovat? Rovnou v produkci?
Kdo, co a kdy udělá
-
Pokud budeme dělat MS, můžu s tím pomoct, ale nemusím. Standa vypadá, že umí :-)
-
1.7. Honza, vyjasním si zadání, úpravy procesu, úpravy CME a dalších systémů
- 1.7. Kuba, Matyáš, potvrdíme si, jak složitá je matematika, jestli potřebujeme microservice, nebo je pár ifů, podíváme se, kde mají Python kódy