mdebs

The Minimalistic Double-Entry Bookkeeping System


Datum poslední aktualizace 18. března 1997

Obsah


Úvod

Softwarový balík s názvem "mdebs" se má někdy v budoucnu stát řešením pro ty, kdo by rádi vedli své podvojné účetnictví pod Linuxem.

mdebs je soubor programů v céčku (ANSI C) a databáze implementované pomocí Postgres95 (nebo-li PostgreSQL).

Autorem mdebs je Nathan L. Cutler (ncutler@terminal.cz).

Spolupracují na projektu

[N.B. pokud jsem zkomolil nějaké vaše jméno či adresu, předem prosím o prominutí a oznamení správného znění!]


Filozofie

Rozhodl jsem se začít psát mdebs hlavně proto, že jsem nenašel žádný software volně šiřitelný pod licencí GPL a běžící pod Linuxem, který by uměl dělat podvojné účetnictví. Dokud nevznikne jiný, lepší freeware program pro vedení podvojného účetnictví pod Linexem, hlavní filozofií a zároveň hnací silou mdebsu bude prostě to, že podobná věc zatím chybí a je třeba okruh softwaru pro Linux o ni doplnit.

Jako majitel a zároveň hlavní účetní a vůbec jediný zaměstnanec malé firmy zabývající poskytování služeb se mi zdálo, že běžné účetní programy jsou pro mé účely naddimenzionované. Říkal jsem si, "proč vlastně je nutné, aby se účetnictví vedlo pomocí grafických oken a podobných nesmyslů? Vždyť jsou to jen čísla."

Dospěl jsem k závěru, že vedení účetnictví je vlastně souborem jednotlivých úkonů, které sice spolu úzce souvisejí, zato jsou dobře definovatelné a tudíž není žádný důvod, proč by měly být nahromaděny v jednom těžkopádném celku s bezpočtem různě vnořených oken a screenů. Představoval jsem si spíše soubor malých programů, které se spouští ze shellu. Každý jednotlivý program by tak měl svůj jasně definovanou dílčí roli a uživatel by je spouštěl podle svého momentální potřeby.

Uvidíme, do jaké míry se podaří tento cíl naplnit. Dle mého názoru to rozhodně stojí za pokus.


Současný stav a potřebná výpomoc

Současný stav projektu ke dni poslední aktualizace tohoto dokumentu je následující:

Projekt potřebuje výpomoc ve formě prostoru na anonymous ftp serveru a možná i hostingu nějaké té nízkoobjemové diskusní skupiny.


Předpoklady

Aby mdebs něco dělal na vašem systému musíte mít funkční instalaci gcc a Postgres95 (also known as PostgreSQL).

V Makefile je třeba se předem ujistit, že gcc bude vědět, kde najde include soubor libpq-fe.h a sdílenou knihovnu libpq.so. Můj Makefile by měl fungovat na systémech postavených za základě distribuce Debian 1.2 s použitím balíků postgres95, postgres95-dev a postgres95-doc.

Další informace o Postgres95 je k dispozici na URL http://www.postgresql.org/


Jednotlivé dílčí programy

Popisy jednotlivých existujících programů, které jsou součástmi mdebsu.

recreate

shell script, který automatizuje následující postup, který je při ladění třeba provést často:

  1. Zlikvidovat databázi jako celek, i s daty a strukturou tabulek
  2. Znovuvytvořit databázi, zatím bez dat a tabulek
  3. Vytvořit strukturu tabulek v databázi
  4. Inicializovat účetní období (fiscal year)
  5. Natáhnout účetní osnovu z ASCII souboru do databáze

Zároveň slouží jako prostředek k prvotnímu vytvoření databázového prostředí.

create.c

Program, který v existující "holé" databázi vytvoří systém tabulek.

init_fiscyear.c

Program, který do tabulky fiscyear zapíše počáteční a konečná data účetního období.

load_osnova.c

Program, který natáhne z ASCII souboru účetní osnovu a cpe ji do tabulky osnova.

Prozatím je jméno ASCII souboru doslova uvedené v zdrojáku load_osnova.h jako OSNOVA_DAT.

Formát souboru OSNOVA_DAT je následující:

Součástí distribuce je i vzorový soubor osnova.dat.

osninput.c

Program, jehož prostřednictvím lze vymazávat, přidávat a dotazovat jednotlivé účty účetní osnovy podle jejich čísla (včetně případného analytického podčísla)

osndump.c

Program, který vypíše celou účetní osnovu na stdout.

load_denik.c

Program, který natáhne účetní operace z libovolného ASCII souboru a cpe je postupně do tabulek tvořících účetní deník.

Tady je třeba ještě hodně psát. Zatím odkazuji čtenáře na vzorový soubor load_denik.dat, který je součástí distribuce.