Faktura
Fakturou se zde myslí podrobné zachycení pohybu konktétního zboží a dodaných služeb (včetně množství respektive rozsahu) jiných než je konektivita, vázané na stranu poskytující a požívající; součástí jsou informační položky potřebné pro vedení příslušné účetní dokumentace.
Obsah
Formát
Faktura se pro potřeby uchování a výměny informací ukládá do samostatného textového souboru (ten obsahuje fakturu a nic než fakturu). Text je reprezentován ve znakové sadě ISO-8859-2. Rozdělení do řádků je vyznačeno znakem LINE FEED (hexadecimální hodnota znaku je a; UNIXové konce řádků).
Textový formát faktury je pozičně a řádkově orientovaný. Následuje hrubý popis hlavičky. Ta je složena z povinných řádků, tj. řádek v souboru musí být. Dále rozlišuji, kdy na řádku může hodnota být vynechána (řádek je prázdný) nebo vynechána být nesmí. První případ je označen písmenem P (povinná hodnota), druhý pak V (volitelná hodnota).
Hlavička faktury
P typ faktury (faktura nebo zálohová)
V variabilní symbol předepsaný vystavitelem plátci faktury
V specifický symbol předepsaný vystavitelem plátci faktury
V konstantní symbol předepsaný vystavitelem plátci faktury
V číslo účtu předepsané vystavitelem plátci faktury
V poznámka
V doménové jméno nebo IP adresa [čeho?]
P ?nevím co? (ne nebo vcdph19)
Hlavičku bezprostředně následuje seznam fakturovaných položek. Seznam musí být neprázdný.
Cílem popisu je nejen zachytit formát, ale také souvislost jednotlivých položek, aby programy pro zpracování věděly, s čím mají/mohou počítat.
Číslo faktury
povinná hodnota
struktura: jedena z následujících, kde YYYY značí kalendářní rok, UUUU číselný identifikátor uživatele, NNNN pořadové číslo, MM číslo měsíce, LL délka období v měsících.
- [1]-UUUU-YYYY-MM-LL
- [2]-UUUU-YYYY-NNNN
- [3]-YYYY-MM-LL
- [456]-YYYY-NNNN
První číslo se dále často nazývá typem faktury, ačkoli typ faktury je jiná položka (zálohová/finální).
- prodej konektivity
- prodej zboží
- nákup konektivity
- nákup zboží
- užití zboží
- výroba
Evidenční číslo faktury
volitelná hodnota
struktura: řetězec
Typ faktury
povinná hodnota
vzor: ^[fz]$
Datum uskutečnění plnění
Povinná hodnota pro ostré faktury, zakázaná pro zálohové.
formát data - shodne se DZ a OZ?
vzor: dd.mm.yyyy
Datum vystavení faktury
povinná hodnota
formát data - shodne se DZ a OZ?
vzor: dd.mm.yyyy
Datum splatnosti faktury
Povinná hodnota, je-li typ platby bezhotovostní a zároveň se nejedná o fakturu typu 5 a zároveň je dodavatelem sklad. Jinak volitelná.
formát data - shodne se DZ a OZ?
vzor: dd.mm.yyyy
Variabilní symbol
Povinná hodnota, je-li typ platby bezhotovostní a zároveň se nejedná o fakturu typu 5 a zároveň je dodavatelem sklad. Jinak volitelná.
vzor: ^\d+$
Pokud je u faktur 2 uveden a neodpovídá vzoru UUUU (úvodní nuly mohou být vynechány) z čísla faktury, varovat.
Specifický symbol
Povinná hodnota, je-li typ platby bezhotovostní a zároveň se nejedná o fakturu typu 5 a zároveň je dodavatelem sklad. Jinak volitelná.
vzor: ^\d+$
Pokud je u faktur 2 uveden a neodpovídá vzoru YYYYNNNN z čísla faktury, varovat.
Konstantní symbol
Povinná hodnota, je-li typ platby bezhotovostní a zároveň se nejedná o fakturu typu 5 a zároveň je dodavatelem sklad. Jinak volitelná.
vzor: U faktur typu 2 ^008|308$, jinak ^\d+$
Číslo účtu
volitelná hodnota; povinné, je-li typ úhrady bezhotovostní
vzor: ^(?:\d+-)?\d+\/\d{4}$
Způsob úhrady
povinná hodnota
struktura: znak u (bezhotovostní) nebo symbol pokladníka, který přijal hotovost
Dodavatel
povinná hodnota
Je-li typ čísla faktury 5, musí být dodavatel /^crf\./ .
struktura: ^[a-z0-9.-]*$
Odběratel
povinná hodnota
struktura: tabulátorem oddělená řetězcová pole
Řetězcová pole (P povinná hodnota, V volitelná hodnota). Rozlišující je první pole, další pak mají jen informativní charakter.
- P identifikátor ^[a-z0-9.-]*$
- V jméno/symbol
- V ulice a číslo popisné
- V město
- V PSČ
- V IČ
- V DIČ
Je-li typ čísla faktury 5, musí být odběratel /^crf\./ .
Pole druhé a další mohou být uvedena, je-li v prvním poli symbol none0.
Vystavitel faktury
povinná hodnota
struktura: ^[a-z0-9.-]*$
Poznámka
volitelná hodnota
struktura: řetězec
Doménové jméno nebo IP adresa
volitelná hodnota
[nevím co] ('''ne''' nebo '''vcdph19''')
povinná hodnota
vzor: ^ne|vcdph19$
Seznam fakturovaných položek
Seznam musí být neprázdný. Položky se fakturují samostatně na řádek.
struktura řádku: tabulátorem oddělená řetězcová pole
- P klíč identifikující zboží či službu, formát ^[a-z0-9.,-]*$
- P množství
- cena
- V sériové číslo výrobku
V jedné faktuře musejí mít všechny položky totéž znaménko množství (faktura popisuje pouze pohyb jedním směrem).
formát množství a ceny
Desetinná čísla s přesností na dvě místa, oddělovačem desetinných míst je "," - čárka, oddělovače tisíců se nepoužívají. Při vystavování faktur, kde jedna věc je rozdělena mezi více odběratelů dbát, aby součet částí dal celek (třem lidem účtovat 0,33, 0,33, 0,34). Doporučeno je načítat celou a desetinnou část zvlášť, vynásobit stem, sečíst a dále počítat celočíselně.
záporné množství
Je-li uvedeno záporné množství, zboží přibývá dodavateli.
Záporné množství nesmí být na faktuře typu 5.
Více o pravidlech zpracování faktur se záporným množstvím viz Dobropis.
sn
Sériové číslo výrobku, má-li ho stanoveno. Položka má formát řetězce, pouze se nesmí objevit znak TAB, který by byl interpretován jako oddělovač položek řádku. Dvojice znaků ", " je chápána jako vnitřní oddělovač v rámci položky, odděluje jednotlivá sériová čísla, jejichž počet by měl odpovídat množství. Tuto souvislost ale není třeba kontrolovat programově.
zvláštní případy
Je-li klíč roven sl-jine, páté pole obsahuje pojmenování služby mimo číselník. Nesmí být na faktuře type 5.
Je-li klíč roven hw-jiny, páté pole obsahuje pojmenování zboží mimo číselník. Nesmí být na faktuře type 5.
Je-li klíč ve tvaru hw-NNNN-AAAA, jde o "specifické zboží" - viz níže. V tom případě páté pole obsahuje pojmenování specifického zboží.
Je-li typ faktury 5 pole cena je prázdné.
dopočet ceny
Dopočet ceny na faktuře typu 5 se přátelí s následujícím.
Probíhá dle Skladového algoritmu
Všechny faktury typu 5 mají v roli dodavatele interní sklad.
- Všechny faktury typu 5 mají všechny položky s kladným množstvím.
Žádné faktury typu 5 neobsahují položku hw-jiny ani sl-jine.
Položky hw-jiny ani sl-jine nesmějí být uloženy na skladě.
Dopočet se provádí jedině tehdy, jsou-li sklady ztotožněny.
- Cena nikdy nechybí, je-li množství záporné.
specifické zboží
Tvar kódu hw-NNNN-AAAA
- NNNN je pořadové číslo formátované na 4 místa - v rámci systému jedinečné
- AAAA je doplňkový řetězec libovolné rozumné délky, slouží pro snadnější orientaci uživatele
Takové zboží, které se pro svou ojedinělost nevyplatí zavádět do trvalého číselníku, ale přesto je zájem sledovat jeho pohyby. Typicky:
- na zakázku vyráběné konzole
- počítače na AP (sice mame kod v ciselniku, nicmene kazdy kus byva original - jiny typ apod., je za jinou cenu a vi se kam prisel)
- nářadí nebo pracovní pomůcky
Příklad kódu: hw-0023-dell
Při zaevidování faktury obsahující specifické položky je třeba provést záznam do pomocného souboru /opt/invoicing/data/hardware-spec obsahujícího seznam všech specifických položek, jejich názvů a čísel faktur, kde se poprvé objevily. Z něj se odvozuje pořadové číslo nově vkládané položky a má i další použití. Informace v tomto souboru jsou redundantní a není záruka, že je soubor synchronizován s ostrými daty.
Operace s fakturou
Přehled operací.
- Zachycení pohybu,
- přehledy pohybů,
- skladové karty,
- účetní lístky,
- ceník.
Tabulkové vlastnosti operací
|
Přehledy pohybů |
Skladové zůstatky |
Ohodnocení skladu |
Účetní lístky |
Ceník |
Ztotožněné sklady |
ne |
ne |
ano |
ano |
ano |
ne |
ne |
ano |
ano |
ano |
|
Práce s cenami |
ne |
ne |
ano |
ano |
ano |
Zálohové faktury |
zpracovat |
zpracovat |
ignorovat |
ignorovat |
ignorovat |
hw-jiny |
ignorovat |
ignorovat |
ignorovat |
zpracovat |
ignorovat |
hw-NNNN-AAAA |
zpracovat |
zpracovat |
zpracovat |
zpracovat |
zpracovat |
sl-jine |
ignorovat |
ignorovat |
ignorovat |
zpracovat |
ignorovat |
Výstupní kódování |
ISO-8859-2 |
ISO-8859-2 |
ISO-8859-2 |
ISO-8859-2 |
ISO-8859-2 |
Zachycení pohybu
Základním významem faktury v našem pojetí je zachytit pohyb vybavení (případně poskytnutí služeb jiných, než připojení/konektivita (proč se konektivita řeší zvlášť?)). Předmětem pohybu jsou fakturované položky. Roli zdroje zaujímá dodavatel, cíle odběratel. Pohyb je doplněn řadou atributů.
Faktura zachycuje pohyb sama o sobě. K jeho odvození nejsou třeba žádné transformace.
Přehledy pohybů
Přehledy pohybů zachycují všechny zaznamenané pohyby daného typu zboží či služby zvlášť pro každého dodavatele či odběratele.
Pohyby se ve vzestupném uspořádání podle data uskutečnení nebo data vydání faktury, není-li datum uskutečnění k dispozici, zapisují po řádcích do souboru <název položky> v adresáři <odběratel> a v adresáři <dodavatel> s opačným znaménkem. Jména adresářů a souborů jsou v případě potřeby změněna tak, aby mohla existovat v souborovém systému.
Na řádku je zapsáno:
- Datum uskutečnení nebo datum vydání faktury, není-li datum uskutečnění k dispozici, ve formátu YYYY-MM-DD,
role faktury f nebo z,
- počet kusů v pohybu,
- zůstatek po provedení pohybu,
- dodavatel (symbol),
- odběratel (symbol),
- číslo faktury.
Položky jsou odděleny tabulátorem.
Skladové zůstatky
Skladové karty zachycují všechny zůstatky daného typu zboží či služby zvlášť pro každého dodavatele či odběratele.
Ohodnocení skladu
Ohodnocení skladu poskytuje přehled hodnoty skladu a ostatních úctů.
Formát karty je řádkově orientovaný. Začíná dvěma řádky hlavičky. Ty následuje seznam položek.
Hlavička.
- Jméno účtu,
- číselná hodnota evidovaného zboží.
Seznam položek. Na každém řádku je zachycen jeden typ/klíč položky. Záznam se skládá ze třech tabulátorem oddělených polí.
- klíč (typ položky)
- množství
- číselná hodnota za celé množství
Účetní lístky
Generování účetních lístků je popsáno na samostatné stránce UcetniListky.
Ceník
Sestaví tabulku vyskladňovacích cen všech evidovaných položek. Ta bude sloužit především jako základ pro výpočet doporučených prodejních cen.
Definice
Sklad
To, že protějšek je sklad, se pozná tak, že symbol vyhovuje vzoru /^crf\.hw/.
Skladový algoritmus
Skladový algoritmus slouží k dopočtení ceny pohybu konkrétní položky v konkrétním množství ze skladu pryč.
Předpoklady použití skladového algoritmu.
Dopočítává se cena pohybu ze skladu.
- Dopočet se provádí jedině tehdy, jsou-li sklady ztotožněny.
Položky hw-jiny a sl-jine se přeskakují.
Položky hw-NNNN-AAAA se započítávají.
Faktury se uspořádávají podle data uskutečnění plnění. Není-li k dispozici, použije se datum vydání faktury.
- Dopočet se provádí vyhledáním naskladnění kusů, které historicky odpovídají kusům vydávaným.
- Algoritmus vychází z teze, že novější faktury nemají vliv na cenové události popsané fakturami staršími.
Příklady konkrétních pohybů
nákup služeb a přefakturace - bezhotovostní
Situace: Petr doda nekomu praci, kterou my s prirazkou vyfakturujeme, platba bude na ucet.
nutno zauctovat dvema pohyby:
nakup
dodavatel: petr
odberatel: crf.hw
castka 300
fuhrady pr -> pricte se ve prospech uctu petra
prodej
dodavatel: crf.hw
odberatel: zakaznik
castka 350
fuhrady u -> nam zaplati odberatel na ucet, petruv ucet neovlivnenshrnuti - vliv na petruv ucet:
+300
nákup služeb a přefakturace - hotovostní
Situace: Petr doda nekomu praci, kterou my s prirazkou vyfakturujeme, penize vybere petr hotove.
nutno zauctovat dvema pohyby:
nakup
dodavatel: petr
odberatel: crf.hw
castka 300
fuhrady pr -> pricte se ve prospech uctu petra
prodej
dodavatel: crf.hw
odberatel: zakaznik
castka 350
fuhrady pr -> odberatel zaplatil petrovi, evidovano na vrub petrova uctushrnuti - vliv na petruv ucet:
+300 -350
Pozn: Staci takhle zauctovat, 50 korun rozdilu at Petr nikomu nedava - to by prinaselo spis komplikace. Lepsi je to jen takto zaevidovat na jeho ucet, protoze sdruzeni mu beztak dluzi (jeho ucet kladny)..
