Pouziti autoincrementu

Petr Vileta petr na practisoft.cz
Čtvrtek Červen 19 14:36:10 CEST 2003


> Tohle vsechno je IMHO naprosto zbytecne. Reknete mi jediny duvod, proc
> by primarni klic faktury v databazi mel byt v neprerusene rade?
> Samozrejme legislativa pozaduje neprerusenou sekvenci ucetnich dokladu,
> ale neni jediny duvod (dnes, kdy je cena za 1 MB diskoveho prostoru
> halirova) pozadovat, aby sekvence videna uzivatelem slouzila jako
> primarni klic. Nedokazu si predstavit organizaci, ktera mam vice nez
> jednoho ucetniho (tedy vyzadujici multiuzivatelskou aplikaci) a pritom
> nema ruzne stupne schvalovaciho procesu. Umely primarni klic (derava
> sekvence) se prideli pri vzniku objektu. Ucetni cislo dokladu
> (vyzadovane jako unikatni a v postupne rade) se prideluje az mnohem
> pozdeji (po vsim schvaleni) a je uvedeno pouze na jednom miste
> (nepouziva se pro vazbu tabulek).
No ja ale netvrdim, ze faktury vystavuje ucetni a ze je jich ve firme vic.
Delal jsem programy, kde primo prodavac vystavuje fakturu, jenze tech
prodavacu je treba 10 a kazdy ma sve PC a neni myslitelne, aby cely den
vystavovali faktury a nasledne je nekdo zauctovaval. Oni proste naklepaji na
klavesnici cislo zbozi a kusy, uzavrou doklad a tim se jim
1) odecte zbozi ze skladovych zasob
2) vystavi dodaci list
3) vystavi faktura
4) zauctuje se to do jednoducheho nebo podvojneho ucetnictvi
Takze firma ma skutecne jen externi ucetni, ktera na 2x do mesice vypocte
vyplaty a vyplni podle udaju z pocitace formular od DPH. No a sef podniku
jen kouka do browseru na "prehled denni trzby"  a klika na tlacitko
"Obnovit". sice muzu doklad evidovat pod nejakym "neviditelnym" ID, ale
kontinualni cislovani faktur musim tak jako tak zajistit, takze prod do
systemu zavadet dalsi cislovani. Ostatne pri nejake potrebe rucni opravy dat
je vhodne videt skutecne cislo dokladu, tedy faktura 200 ma cislo 200 a ne
treba 129854.

> Nevim, zda to legislativa primo vyzaduje, ale kazdy 1. doklad v ucetnim
> roce by mel mit cislo 1 - jak zajistite koexistenci dat za vice ucetnich
> roku v jedne databazi, kdyz pouzivate cislo dokladu jako primarni klic?
No ja pred cislo faktury davam 4 mistne cislo roku ;-) takze faktura 200 z
roku 2003 ma ve skutecnosti cislo 200000200 (predpokladam maximalne 999999
faktur za rok). Prideleni cisla je pak
SELECT MAX(fa_cislo)+1 FROM faktury WHERE YEAR(datum_vystaveni)=YEAR(NOW());
Funguje to :-)


> Neni tohle cesta, jak uspokojit financni spravu o prukaznosti ucetnictvi
> a nedelat komplikace v softwaru tam, kde nejsou nutne?
Me pripada naopak komplikovane chtit evidovat 20 udaju (fields), ale
potrebovat jich 30 k provazani tabulek :-) Ja se ridim zasadou, ze data musi
zustat prehledna i v pripade, ze nemam k dispozici program na jejich
zpracovani. tedy pokud nedelam neco, kde se naopak maji data utajit. Proto i
takovy detail, jako jsou nazvy poli volim tak, zby jejich nazev vypovidal o
ulozenem udaji. Tedy cislo faktury bude napriklad v poli 'fa_cislo' a ne
'idnum' ;-)

--
Petr




Další informace o konferenci Databases