Gebruikstips

Uit EekBoek
Naar navigatie springenNaar zoeken springen

Deze pagina bevat een aantal tips, technieken en valkuilen bij het gebruik van EekBoek.

Rapporten in de GUI worden niet opgemaakt

Het is gebleken dat in combinatie met bepaalde versies van wxPerl de door de EekBoek GUI getoonde rapportages problemen vertonen. In plaats van keurig opgemaakte tabellen wordt er ruwe HTML tekst getoond.

Het probleem doet zich voor bij versies 0.95 en 0.96 van wxPerl. Dit treft met name het Ubuntu 10.04 LTS systeem, dat wordt geleverd met versie 0.96 van wxPerl.

Oplossing: Upgraden naar EekBoek versie 2.00.02 of nieuwer. Deze bevat een workaround voor dit probleem.

Invoerondersteuning voor relatiecodes en rekeningnummers

De EekBoek shell biedt ondersteuning voor het invoeren van relatiecodes en rekeningnummers. Dit doe je door tijdens het invoeren op de TAB toets te drukken. Wanneer er maar één mogelijkheid is wordt die automatisch aangevuld, anders wordt een lijstje getoond.

Een voorbeeld:

eekboek> in[TAB]
inbedrijf  include    inkoop     
eekboek> inkoop X[TAB]
   XOS  X/OS
   XS4ALL  XS4All Internet B.V.
eekboek> inkoop XS[TAB]
eekboek> inkoop XS4ALL

Eveneens voor rekeningnummers:

eekboek> inkoop XS4ALL 100 "Router" 69[TAB]
    6900  Telefoon- en faxkosten
    6905  Internetkosten
    6920  Kantoorartikelen
    6921  Computerbenodigdheden
    6930  Vakliteratuur
    6940  Administratiekosten
    6950  Drukwerk & papier
    6970  Postzegels
    6971  Verzending portikosten
    6980  Bankkosten
    6981  Kasverschillen
    6990  Overige algemene kosten
eekboek> inkoop XS4ALL 100 "Router" 692[TAB]
    6920  Kantoorartikelen
    6921  Computerbenodigdheden

Vervolgregels in batchmode opdrachten

In batch mode kan een opdracht over meerdere regels worden weergegeven, bijvoorbeeld, de opdracht-string

inkoop:24 14-09-2007 Kantoorartikelen OFFCENTR --totaal=54,25  Papier 29,95 6950  Leerboek 24,30@L 6930

kan in een opdrachten-bestand (voor de leesbaarheid) worden weergegeven als

inkoop:24 14-09-2007 Kantoorartikelen OFFCENTR --totaal=54,25 \ 
Papier 29,95 6950 \ 
Leerboek 24,30@L 6930

Het backslash (\)-teken aan het einde van de regel, zorgt er dus voor dat de string op een volgende regel kan worden voortgezet.

PAS OP: achter het \-teken mogen geen spaties meer staan, anders wordt het \-teken niet gezien als vervolgindicator!!

Zouden er in ons voorbeeld spaties staan achter het \-teken, dan zal Eekboek elke regel als een aparte boeking zien, dus

inkoop:24 14-09-2007 Kantoorartikelen OFFCENTR --totaal=54,25  

geeft dan foutmelding dat het 'totaal' onjuist is.

met als gevolg

Papier 29,95 6950 

geeft melding 'Onbekende opdracht'

Update: Vanaf versie 2.00.02 worden spaties en tabs tussen het \-teken en het eind van de regel genegeerd.

Openingstips

Het is gebruikelijk om bij het openen van een nieuw boekjaar enkele posten af te boeken. Dit betreft:

  • Stortingen en opnames: Deze worden weggeboekt tegen het (bedrijfs)kapitaal.
  • Afschrijvingen: Deze worden weggeboekt tegen de betreffende balansposten.

Bijvoorbeeld: Stel dat de openingsbalans (o.m.) de volgende posten bevat:

# Debet
adm_balans 1100      200,00   # Inventaris en inrichting
adm_balans 1110     1000,00   # Computers
adm_balans 3120    15000,00   # Privé opnamen
# Credit
adm_balans 1101       50,00   # Afschrijving inv. & inr.
adm_balans 1111      600,00   # Afschrijving computers
adm_balans 3100    34567,89   # Kapitaal de heer/mevrouw
adm_balans 3110      500,00   # Privé stortingen

De openingsboeking zou dan worden:

memoriaal 01-01 Opening \
    std "Afboeken stortingen"              -500,00   3110 \
    std "Afboeken opnamen"                15000,00   3120 \
    std "Afboeking (Kapitaal)"           -14500,00   3100 \
    std "Afboeken afschr. inv."              50,00   1100 \
    std "Afboeken afschr. inv."             -50,00   1101 \
    std "Afboeken afschr. comp."            600,00   1110 \
    std "Afboeken afschr. comp."           -600,00   1111 \

Na deze boeking staan de grootboekrekeningen 1101 (Afschrijving inv. & inr.), 1111 (Afschrijving computers), 3110 (Privé stortingen) en 3120 (Privé opnamen) alle op 0,00.

Door de eerstvolgende reguliere boeking te dateren op 2 januari (02-01) is het mogelijk de verschillende balansoverzichten te scheiden:

balans --opening               # de openingsbalans
balans --per=01-01             # de openingsbalans na afboekingen
balans                         # de actuele balans

Te grote bedragen

EekBoek rapporten worden opgemaakt in kolommen en de breedte van deze kolommen is vast. Wanneer iets niet in een kolom past wordt een deel van de inhoud naar een nieuwe regel verplaatst. Bijvoorbeeld: 'Totaal Belastingen en sociale lasten' hieronder:

4       Vreemd vermogen
41       Totaal Leveranciers kredieten               927,84     927,84
42       Totaal Belastingen en sociale               148,13    1463,00               1314,87
         lasten
4       Totaal Vreemd vermogen                      1075,97    2390,84               1314,87

Dit geldt ook voor bedragen. Standaard is de breedte van kolommen waarin bedragen worden weergegeven 9, wat voldoende is voor bedragen tot 999999,99.

Vanaf versie 2 worden bedragen weergegeven met duizendpuntjes. Dit beperkt wat past in een standaardkolom tot 99.999,99. Een grens waar een gemiddelde gebruiker wat gemakkelijker tegenaan kan lopen.

  Totaal                                             234.567,8
                                                             9

Gelukkig is de kolombreedte voor bedragen eenvoudig in te stellen. In het configuratiebestand kan in sectie 'format' een setting worden opgenomen als volgt:

[format]
amount = 9.999.999,99

Hiermee kunnen drie dingen worden ingesteld. Ten eerste of er puntjes of komma's moeten worden gebruikt als decimaalscheider. Ten tweede of er duizendpuntjes moeten worden toegepast, en ten derde de maximale breedte van de te tonen bedragen. Het 'oude' gedrag van EekBoek versie 1 komt overeen met:

amount = 999999,99

Voor meer informatie, zie de documentatie.

'Rekenkundig residu' en 'Boekhoudkundig residu'

Wat is het verschil tussen het 'Rekenkundig residu' en het 'Boekhoudkundig residu'?

Het verschil zit hem in negatieve bedragen. Je kunt bijvoorbeeld op de balans een post hebben als:

adm_balans 2320  1131,92        # Saldo Postbank

Dit is een debet-bedrag. Maar stel dat je een tekort hebt:

adm_balans 2320  -131,92        # Saldo Postbank

Rekenkundig is dit nog steeds debet, maar boekhoudkundig wordt het aan de creditzijde gerekend.

Verwijderen van EekBoek administratie

Indien een administratie is zijn geheel verwijderd moet worden, dan moet het volgende gebeuren:

  • ga naar de admdir-directory en verwijder de daarin opgenomen bestanden
  • indien ook de database PostgreSQL is gebruikt, verwijder deze dan ook.

Overigens is het mogelijk om in EekBoek meerdere administraties te voeren, en kan in het opstart menu de juiste administratie geslecteerd worden, dus een oude administratie kan naast een actuele/correcte administratie blijven bestaan.

Jaarafsluiting procedure

Een jaarafsluitingsprocedure ziet er als volgt uit:

# Rapportages voor Accountant.
include reports.eb

# Aanmaken openingsdata 2011.
jaareinde --boekjaar=2010 --eb=opening2011.eb

# Aanmaken openingsbalans 2011.
adm_open
balans --boekjaar=2010 --out=openbalans2011.txt

Het bestand 'reports.eb' bevat:

# Rapportages voor Accountant.
boekjaar 2010
balans --output=reports/01balans.html      \
       --titel="Balans op grootboekrekening"
balans --detail=2    --output=reports/02balans.html      \
       --titel="Balans op verdichting"
balans --detail=0    --output=reports/03balans.html      \
       --titel="Balans, geheel verdicht"
result --output=reports/11result.html      \
       --titel="Resultaten op grootboekrekening"
result --detail=2    --output=reports/12result.html      \
       --titel="Resultaten op verdichting"
result --detail=0    --output=reports/13result.html      \
       --titel="Resultaten, geheel verdicht"
journaal --output=reports/20journaal.html    \
       --titel="Journaal"
grootboek --output=reports/30grootboek.html   \
       --titel="Grootboek"
btwaangifte jaar --output=reports/40btwaangifte.html \
       --titel="BTW Aangifte"
openstaand --output=reports/80openstaand.html  \
       --titel="Openstaande posten"

Indexje erbij en klaar is kees.

Balanstotaal

Bij het bekijken van de balans met het commando "balans", dan klopt het balanstotaal, maar als het commando "balans --detail=2" gebruikt wordt, dan wijkt het balanstotaal af van het totaal van de bedragen in de kolom.

De reden is niet een bug, maar dat vanwege het detail niveau de debet- en credit bedragen al of niet tegen elkaar wegvallen. Het gewone commando "balans" levert een overzicht van alle balansrekeningen. Alle debet-bedragen worden getotaliseerd, eveneens alle credit-bedragen. Het verschil van de totalen is de winst/verlies. In een verdichte balans worden de balansrekeningen per verdichting samengevoegd, en worden uiteindelijk de totalen opgeteld. Omdat bij het samenvoegen debet- en credit-bedragen tegen elkaar wegvallen, ontstaat er een ander balanstotaal.

Stel je hebt deze twee balansrekeningen:

balans1-groep1  900 debet
balans2-groep1  500 credit

In de balans op rekeningen krijg je totaal 900 debet en 500 credit. Het balanstotaal is 900, en de winst is 400.

In de verdichte balans krijg je voor groep1 900 debet - 500 credit = 400 debet. Het balanstotaal is 400, en de winst is, nog steeds, 400.

Belastingdienst als relatie

Vanuit het vorige boekjaar (niet in Eekboek) heb ik winst en btw die ik moet afdragen. Ik wil mezelf in de nieuwe administratie crediteur maken voor de winst en de belastingdienst debiteur voor de btw. Crediteuren/debiteuren worden normaal gesproken hiervoor niet gebruikt.

Het is niet algemeen gebruikelijk om de belastingdienst als crediteur in te voeren, maar het heeft ook wel enkele voordelen. Je kunt gewoon een crediteur BELASTINGDIENST maken:

relatie --dagboek=inkoop "BELASTING" "Belastingdienst" xxxx

waarbij xxxx een willekeurig bestaand kostenrekeningnummer is; het kan inderdaad helaas geen toepasselijke belasting-balansrekening zijn. En vervolgens de BTW aangiftes inboeken met iets als:

inkoop:63 2010-03-31 "BTW aangifte 2010/kw1" BELASTING --totaal=1118.00 \
   "Verschuldigde omzetbelasting 2010/kw1" 1118.00 yyyy

waarbij wel de toepasselijke belasting-balansrekening is. Die moet dus altijd expliciet opgegeven worden, omdat het default mechanisme hier niet werkt.

Voordeel is dat alle betalingsverplichtingen (inclusief belastingen) direct uit het crediteurenoverzicht blijkt, nadeel is dat op de balans je belastingverplichtingen nu "onzichtbaar" opgenomen zijn in de post crediteuren. Voor de jaarrekening zal je accountant die apart op de balans willen zien -- geen moeilijke aanpassing, maar wel een verschil tussen de "Eekboek" balans, en de "accountant/jaarrekening" balans. Als je geen loonbelasting betaalt, en maar 1 keer per jaar BTW, dan zou ik deze omweg voor belastingboekingen niet kiezen.

Toevoegen nieuw rekeningschema

Als de gebruiker al een schema heeft in een file en de ebshell gestart wordt, hoe moet dan worden opgegeven dat het bedoelde rekeningschema uit de file gebruikt moet worden? De verwerking van het schema vindt plaats met "ebshell --init". Het (nieuwe) schema moet dus als "schema.dat" bij de andere bestanden (mutaties.eb en zo) worden geplaatst, en daarna moet eenmalig "ebshell --init" worden uitgevoerd.

Taalinstellingen

De taalinstelling van EekBoek staat genoemd in de configuratie file van de administratie:

# cat ~/.eekboek/admdir/eekboek.conf 
[locale]
lang       = nl_NL
[database]
name       = test_2010
driver     = sqlite

Een veel voorkomende foutmelding is

# ebshell
Use of uninitialized value $ENV{"LANG"} in pattern match (m//) at /usr/local/bin/ebshell line 45.
WAARSCHUWING: Uw taalinstelling is niet Nederlands en wordt genegeerd.
EekBoek 2.01.02 (Nederlands) -- Copyright 2005-2011 Squirrel Consultancy

Verifieer of de taalinstelling ook voorkomt in de locales welke op de machine geinstalleerd zijn:

# locale -a | grep nl
nl_BE.ISO8859-1
nl_BE.ISO8859-15
nl_BE.UTF-8
nl_NL			<-- deze moet aanwezig zijn om de foutmelding te voorkomen
nl_NL.ISO8859-1
nl_NL.ISO8859-15
nl_NL.UTF-8

Een andere veel voorkomende melding is:

# ebwxshell
Cannot set locale to "".

Dit is geen melding van EekBoek. Soms helpt het om LANG = nl of LANG = nl_NL.utf8 (en UTF8, UTF-8, utf-8) te gebruiken in de config file. Anders, indien van een Linux systeem gebruik wordt gemaakt, pas de waarden aan in dpkg-reconfigure locales.

Het lukt me nog steeds niet om de taalinstelling PER BOEKHOUDING corrrect te krijgen door in de locale (dus binnen de directory met de betreffende boekhouding) eekboek.conf iets van het volgende te plaatsen:

[locale]
language = nl_NL
lang = nl_NL

Ik moet altijd eerst expliciet de bash shell omgevingvariable LANGUAGE=nl_NL exporteren om Eekboek in het Nederlands te krijgen. De [locale] directive in eekboek.conf lijkt geen enkel effect te hebben. EekBoek kent namelijk geen config [locale] language, enkel lang. Het zetten van [locale]lang is equivalent aan het zetten van de environment variabele LANG.

Er is ook een environment variabele EB_LANG die, enkel voor EekBoek, de waarde van LANG overruled.

Een shellscriptje werkt natuutlijk wel, maar via eekboek.conf zou eleganter zijn.

Ik heb namelijk verschillende boekhoudingen waarvan enkele in het Nederlands en enkele in de Engelse taal. Mijn systeem heeft standaard als shell taalinstelling:

# env | grep LANG

LANG=en_AU.UTF-8
LANGUAGE=en_GB:en

In een scriptje (bijvoorbeeld 'ebshell2') zorg dat eerst:

export LANGUAGE=

en daarna het ebshell commando wordt uitgevoerd.

Op deze manier is de LANGUAGE setting verwijderd en wordt ook daadwerkelijk de [locale] directive in de 'lokale' eekboek.conf geinterpreteerd. Dus bijvoorbeeld in een_Nederlandse_Boekhouding/eekboek.conf

[locale]
lang = nl_NL.utf8

dan

% ebshell2

WAARSCHUWING: Uw taalinstelling is niet Nederlands en wordt genegeerd.
EekBoek gebruikt nu nl_NL.
EekBoek 2.02.00 (Nederlands) -- Copyright 2005-2013 Squirrel Consultancy

Er kan dus nu per boekhouding wat betreft de taalinstelling op eekboek.conf vertrouwd worden.

Na het sluiten van de shell zal de LANGUAGE omgevingsvariable weer worden teruggezet naar de oude waarde:

% env | grep LANG

LANG=en_AU.UTF-8
LANGUAGE=en_US:en

Ik heb nog niet getest wat het effect is van een lege LANGUAGE als in een shell bijvoorbeeld bij batch verwerking de output van ebshell(2) in een script verwerkt wordt als input van een ander shell commando (terugval naar LANG ??)

Configuratie bestanden

Om diverse instellingen binnen EekBoek aan te passen (bijvoorbeeld bkm_multi) wordt in de handleiding verwezen naar "/etc/eekboek/eekboek.conf". In mijn Debian installatie komt dit bestand echter niet voor, wel de volgende 3 bestanden (behoudens de .conf bestandjes in de admdir):

/usr/share/doc/eekboek/examples/eekboek.conf
/usr/share/doc/eekboek/html/intro/eekboek.conf
/usr/share/perl5/EB/examples/eekboek.conf

Het systeem-globale configuratiebestand behoort "/etc/eekboek/eekboek.conf" te zijn. Als dat bestand er niet is kun je het aanmaken, bijvoorbeeld door /usr/share/perl5/EB/examples/eekboek.conf daarheen te kopiëren. Maar tenzij je echt instellingen voor alle users wilt aanpassen, kun je de benodigde instellingen ook in je $HOME/.eekboek/eekboek.conf opnemen.

Opeenvolgende boekstuknummers

Eekboek gebruikt niet het vorige boekstuknummers opnieuw na het verwijderen van een boekstuk en het opnieuw invoeren van een andere, waardoor er dus gaten in de boeknummers ontstaan. Formeel mag in een administratie geen wijzigingen in de boekstukken aangebracht worden. Alle correcties moeten met correctieboekingen worden doorgevoerd. Dat het in EekBoek wel mogelijk is om boekingen te verwijderen is een handige feature. Het ontstaan van gaten is anders te voorkomen door de kopregel (na verwijdering) te laten beginnen met:

verkopen:[verwijderd nummer] datum etc etc

Maar let op! Als hierna een boeking volgt zonder expliciet nummer, dan zal EekBoek het eerstvolgende nummer volgend op verwijderd nummer toekennen. Als dit nummer al/nog in gebruik is zal de boeking mislukken.

Onderdelen van omschrijving geinterpreteerd als datum

In de volgende boeking staan datums:

memoriaal:17 2014-12-31 "nog te betalen bedragen" \
  std 2014-12-31 "1-abc omschrijving"  100.00 1671 \
  std 2014-12-31 "1-abc omschrijving" -100.00 4876

In een export van de administratie verschijnt de boeking als volgt:

memoriaal:17 2014-12-31 "nog te betalen bedragen" \
       std "1-abc omschrijving" 100,00 1671 \
       std "1-abc omschrijving" -100,00 4876

EekBoek heeft de datum op de "std" regels weggelaten, omdat deze toch identiek is aan de datum van de boeking zelf.

Wanneer op een later tijdstip de geëxporteerde administratie geimporteerd wordt, komt de volgende melding:

?Onherkenbare datum: 1-abc omschrijving
?INTERNAL ERROR: Command failed but did not rollback.

Dit breekt het importproces niet af, maar memoriaal:17 wordt niet geïmporteerd. Kennelijk raakt de EekBoek parser overstuur van de omschrijving waarvan het begin een vage gelijkenis vertoont met een datum.

Dit probleem treedt op wanneer de export in verkorte vorm heeft plaatsgevonden in plaats van in standaard vorm. In de config file kan het formaat worden opgegeven van een datum. Bij voorkeur is dit inclusief jaartal, dus yyyy-mm-dd en niet het kortere dd-mm. Er zijn overigens enkele ongedocumenteerde exportopties als bsknr, explicit en totals. Zie bv. de beschrijving van de opdracht "toon".