Gebruikstips
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.