Jak by měl vypadat systém pro evidenci skladových pohybů?

Obecně bych se přikláněl k relační databázi, podobným směrem jsem se nejprve (asi před měsícem a půl) vydal a začal jsem tvořit i grafické rozhraní pro manipulaci s databází. Dnes, s odstupem, jsem to zvážil ještě z jiných hledisek. Především, pravděpodobně nalezneme vazby na již existující evidence. Skladový systém by do nich měl pokud možno nenásilně zapadnout. Uživatelským rozhraním by pak logicky byla kombinace textového editoru a sada pomocných skriptů - pro vyplňování, dotazování, kontrolu konzistence apod. Pro vlastní data stále zvažuji relační databázi nebo prosté textové soubory. Bez ohledu na technické řešení, data a nástroje pro práci s nimi by mohly vypadat třeba takto:

Číselníky

subjekty - pro sledování vlastnického vztahu k věcem

#id     jmeno
dz      David Zejda
ks      Karel Snajdrvint
oz      Ondrej Zajicek
dk      David Kolovratnik
crf-net CRFreeNet, divize sit
crf-ob  CRFreeNet, divize obchod
oit     Open-IT
jzd-p   JZD Pohled

Subjekty, které by se kryly s účty v computers by mohly používat stejné identifikátory

místa - pro sledování fyzického umístění věcí

#id     jmeno
kino    kino, u karla
skroup  u DZ
libo    u roberta
jzd-p   JZD Pohled

Třeba by subjekty mohly sloužit zároveň jako místa, a do tabulky míst by se uvedla jen taková místa, která nemají svůj odraz v subjektech (typicky u subjektů, které mají věci rozeseté všude možně).

položky

#id     jmeno
ap-5460 OvisLink WL-5460 AP
ap-1120 OvisLink WL-1120 AP
pig-mini        pigtail mini UFl

Převody

Tabulka, která by obsahovala to hlavní - přesuny mezi sklady a změny vlastnických vztahů. Peníze by mohly být evidovány jako cokoliv jiného.

kdy - datum, pokud by byla tabulka v podobě textových souborů, možná by mohl existovat spíše adresář pohyby a jednotlivé soubory by byly pojmenovány podle data

dod-dkl - číslo, pod kterým transakci zaevidoval dodavatel (ten, kdo je v kolonce "odkoho"), kde to bude mít smysl, číslo by se zřejmě přidělovalo automaticky v číselné řadě podle dokladu

odb-dkl - číslo, pod kterým transakci zaevidoval dodavatel (ten, kdo je v kolonce "komu")

co - kód položky

kolik

odkoho - původní vlastník

komu - nový vlastník

odkud - původní umístění

kam - nové umístění

cena - zřejmě vč. DPH

vyriz - kterým dokladem byl splacen případný závazek, "ne" znamená trvání závazku, "-" závazek nevzniká

zazn. - kdo zaznamenal řádek

pozn - poznámka

#kdy    dod-dkl odb-dkl co      [s/n]   kolik   odkoho  komu    odkud   kam     [cena]  [vyriz] zazn.   pozn

#nakup a presun; vznik zavazku
060919  vf0013  pf20014 ap-1120 ma44r0d 1       oit     crf-net skroup  kino    1000    ne      dz      pro Novaka

# nakup a presun; uhrazeno (uhrada viz dalsi radek)
060919  vf0014  pf20015 ap-5460         1       oit     crf-net skroup  kino    1000    pd0017  dz      

# uhrada zavazku
060923  pd0017  pd0018  kc              1190    crf-net oit     kino    skroup  -       vf0014  dz

# presun
060922  sd00015 sd00015 ap-1120 ma4430d 1       crf-net crf-net kino    libo    1190    -       ks

# zmena vlastnictvi - prodej
060922  vf00019 pf00018 ap-1120 ma4430d 1       crf-net jzd-p   libo    jzd-p   1300    ne      rk

Tabulka neodpovídá doporučeným zásadám relačních databází, především není normální. Zásah, který by stál za zvážení je rozdělit ji na dvě o struktuře:

#kdy    dod-dkl odb-dkl odkoho  komu    odkud   kam     [vyriz] zazn.   pozn

a

#co     [s/n]   kolik   [cena]  pozn

Čím méně, tím je struktura jednodušší a přehlednější - třeba pro ruční úpravy dat dává smysl aniž by bylo třeba něco dohledávat ve více souborech. Na druhou stranu z redundance zase plyne vyšší náchylnost k nekonzistencím a obecně chybám v datech.

Vkládání nových záznamů

novy-pohyb [kompletni specifikace pohybu pro davkove pouziti - format jsem zatim neresil]

bez parametru se spusti v interaktivnim modu

priklad: interaktivni vlozeni nakupu 2 polozek

$ novy-pohyb
kdo vklada> ks
    pouzito Karel Snajdrvint
kdy>
    pouzito dnesni datum: 2006-09-20
zmena mista> a
    pouzito "ano"
odkud> blah
    neznam; zkus "?" nebo "??"
odkud> ?
    skroup      kino    libo    newt
odkud> ??
    kino        kino, u karla
    skroup      Skroupova 233, u DZ
    libo        u roberta
    jzd-p       JZD Pohled
odkud> skroup
    pouzito "Skroupova 233, u DZ"
kam> kino
    pouzito "kino, u karla"
zmena vlastnictvi> a
    pouzito "ano"
od koho> ??
    dz  David Zejda
    ks  Karel Snajdrvint
    oz  Ondrej Zajicek
    dk  David Kolovratnik
    crf-net     CRFreeNet, divize sit
    crf-ob      CRFreeNet, divize obchod
    oit Open-IT
    jzd-p       JZD Pohled
od koho> oit
    pouzito "Open-IT"
komu> crf-ob
    pouzito "CRFreeNet, divize obchod"
hned uhrazeno> n
    pouzito "ne"
dod. doklad navrh: vf10017>
    pouzito "vf10017"
odb. doklad navrh: pf10027>
    pouzito "pf10027"
polozka> ?
    ap-1120     ap-5460 pig-mini
polozka> ap-5460
    pouzito "OvisLink WL-5460 AP"
kolik> 1
    pouzito 1 ks
cena> 1190
    pouzito 1190,-
hotovo> ?
    a   n       r
hotovo> ??
    a   ano, ulozit
    n   ne, pokracovat dalsi polozkou
    r   rekapitulace
hotovo> r
    vklada      ks
    kdy         2006-09-20
    odkud       skroup
    kam         kino
    od koho     oit
    komu        crf-ob
    uhrazeno    n
    dod-dkl     vf10017
    odb-dkl     pf10027
    -----------------------
    ap-5460     1       1190
    -----------------------
    celkem              1190
hotovo> n
polozka> pig-mini
    pouzito "pigtail mini (UFl)"
kolik> 1
    pouzito 1 ks
cena> 120
    pouzito 120,-
hotovo> r
    vklada      ks
    kdy         2006-09-20
    odkud       skroup
    kam         kino
    od koho     oit
    komu        crf-ob
    uhrazeno    n
    dod-dkl     vf10017
    odb-dkl     pf10027
    -----------------------
    ap-5460     1       1190
    pig-mini    1       120
    -----------------------
    celkem              1310
hotovo> a
    zaznamenano
$    

Ještě tam chybí dotaz na s/n a poznámku. Výsledkem by byly dva řádky v tabulce pohybů:

060920  vf00017 pf20027 ap-5460         1       oit     crf-ob  skroup  kino    1190    ne      ks
060920  vf00017 pf20027 pig-mini        1       oit     crf-ob  skroup  kino    120     ne      ks

Dotazy

stav-skladu misto]@[subjekt[/polozka][ :datum]

priklad - kolik je momentalne starych ovislinku ve vlastnictvi crf-net u karla:

$ stav-skladu kino@crf-net/ap-1120

pohyby misto]@[subjekt[/polozka][ :datum]

priklad - kolik ma crf-net v hotovosti penez:

$ stav-skladu @crf-net/kc

priklad - kolik je u karla v hotovosti penez, bez ohledu na to, komu patri:

$ stav-skladu kino@/kc

nevyrizene kdo]:[komu[/polozka]

priklad - vsechny pohledavky crf-ob:

$ nevyrizene :crf-ob

priklad - vsechny zavazky crf-ob:

$ nevyrizene crf-ob:

apod...

připomínky, nápady, dotazy

a) Nebezpečné zboží (aktivní prvky - na skladě klesá doba jejich záruky) např... ap-.. switch-.. Může se pak vyčíslit co je na skladě nutné k prodeji (záruka 24měsíců mínus 6měsíců)

b) Bezpečné zboží (konektory, kabely, ...)

pokud se vezme 10x síťová karta tak aby bylo možné do skladu zanést jejich sériová čísla nějak najednou,.. (na nové stránce kopírovat hodnoty mimo sériového čísla nebo zadat vícenásobě v jednom formuláři podle položky kolik ks)

KS: snad se šikne :o))

DZ: OK, v návrhu ty bylo myšleno tak, že by se do sloupečku se sér. číslem mohlo uvést tolik čísel, kolik by bylo řádkem zaznamenaných položek zboží. Zatím není ale navržen žádný mechanismus, který by u aktivních prvků nutil uživatele sn doplnit, protože položky nejsou podle hlediska má sn nemá sn rozlišeny. Řešením by bylo do číselníku položek přidat sloupeček, kterým by se určilo, zda je uživatel systému povinen u této položky sn uvádět.

Poznámky

KS psal pred casem mailem - probrat a pripadne zaclenit do navrhu:

myslim aby jsme se Robert v datech netopil bylo by vhodne prozkoumat systemy ucetnictvi a hlavne skladu+dodavatelu,..

DZ uz prozkoumal cca 8 systemu a neco vybral,.. myslim ze zasle odkazy treba mu s tim pomuzem,..

jinak treba jak evidovat konektory RJ45 a podobne drobnosti ve skladu,... myslim ze by se mohlo dohodnout ze se budou odepisovat nejak naraz,.. nestoji mnoho a s presnou evidenci konektoru a metrazi kabelu by to bylo hruuuza,...

NAVRH

navrhuji aby Robert vyplnoval Predavaci protokoly dusledne vse co jde napocitat zakaznikoj,.. z toho se udela pak faktura ,... do skladu se zapise ale nemusi tak dusledne (odepisovani konektoru atd,...) peci nebude RJ45 4ks Franta Vobejda a 3ks Eva Vomáčková atd,...

stanovit co se ze skladu ma odepisovat dusledne a co vypoustet,.. mozna podle hodnoty materialu

tabulka skladu

datum_prijmu_od_dodavatele (dobre pro reklamaci) dodavatel nazev_vyobku cena seriove_cislo mac (na zvazenou) datum_predani_zakaznikoj

pak neco zda byl produkt vyreklamovan a jeho nahrada

kdyz k nekomu pojede muze si pripravit predavaci protokol (v budoucnu) zaskrtanim prislusnych fajfek v databazi,.. MAC muze zapsat automaticky do computers :))) HE HE (kdopa se s tim bude delat)

cerpam tak ze zkusenosti z Ecompu

treba se neco hodi

crfreenet: SystemSkladoveEvidence (last edited 2009-05-24 18:21:46 by localhost)

[CRFreeNet] [Galerie] [CZFree.Net] [zen#blog]