hledger
: un programme simple pour comptabiliser
de la monnaie, du temps, des votes ou tout autre commodité,
utilisant un simple fichier de texte brut et les puissants
principes de la comptabilité en partie-double.
Resources
http://hledger.org/
Installation
Sur Debian Wheezy
% echo 'PATH="$HOME/.cabal/bin:$PATH"' >>~/.profile
% exit # NOTE: recharge ~/.profile
% sudo apt-get install ghc cabal-install
% cabal update
% cabal install cabal # NOTE: met à jour cabal
% sudo apt-get install libncurses5-dev libtinfo-dev zlib1g-dev
% cabal install happy # NOTE: anticipe une dépendance exécutable
% cabal install hledger
% cabal install alex # NOTE: anticipe une dépendance exécutable
% cabal install warp-2.0.3.4 hledger-web # NOTE: aide cabal à sélectionner un warp qui fonctionne
Mise-à-jour
% cabal install --reinstall hledger hledger-web
Version de développement
% git clone http://github.com/simonmichael/hledger.git ~/src/hledger
% cd ~/src/hledger
% cabal install --reinstall --force-reinstalls \
--disable-library-profiling \
--disable-executable-profiling \
./hledger-lib ./hledger ./hledger-web
Installer un script hledger si besoin
% echo 'PATH="$HOME/src/hledger/extra:$PATH"' >>~/.profile
% exit # NOTE: recharge ~/.profile
% ghc ~/src/hledger/extra/hledger-SCRIPT.hs
NOTE : notamment hledger-equity
et hledger-print-csv
.
- http://autogeree.net/~julm/src/hledger/extra/hledger-print-csv.hs
- http://autogeree.net/~julm/src/hledger/extra/hledger-equity.hs
- http://autogeree.net/~julm/src/hledger/extra/hledger-of-oxygen-csv.pl
Utilisation
- Manuel : http://hledger.org/manual/
Syntaxe d’un FICHIER.hledger
Un FICHIER.hledger
est un fichier de texte brut respectant une syntaxe préçise
qui forme une succession d’écritures comptables, ordonnées librement.
NOTE: tout ce qui suit le caractère « ;
» est un commentaire libre.
Une écriture a grosso-modo pour exemple général :
2014/01/01 Libellé de l’écriture ; UN_TAG:, UN_autre_TAG:, encore_UN_tag:Avec_Valeur
Nom:de:Compte 1,000.00€
Et:Encore:un:Autre:Nom:de:Compte 100.00€
Autre:Nom:de:Compte -500.00€
Encore:un:Nom:de:Compte -600.00€
ATTENTION : la date doit commencer en début de ligne, chaque nom de compte doit être précédé d’un blanc sur une ligne propre, et chaque montant doit suivre un nom de compte et au moins deux espaces, il n’est pas nécessaire que les montants soient alignés.
Un compte peut prendre n’importe quel nom et le caractère « :
»
symbolise le séparateur hiérarchique de l’arborescence des comptes.
Une écriture peut donc ventiler sur plusieurs comptes, mais doit toujours être balancée à 0, il est même donc possible d’ommettre un des montants, qui sera inféré comme l’opposé de la somme des autres.
Les tags
peuvent être utiles pour filtrer certaines écritures
comme les Opérations Diverses (tag OD:
) ou les À nouveaux (tag ANV:
),
ou stocker certaines informations de manière un minimun structurée.
Plan comptable
Le plan comptable d’une cyclofficine :
- Documentation : Plan comptable
- Référence hledger : Cyclofficine.Plan comptable.hledger
Édition d’un FICHIER.hledger
Apprendre à utiliser un éditeur de texte conçu pour manipuler du texte structuré, s’avère — ici comme ailleurs — un investissement hautement rentable pour sculpter tout fichier texte :
- http://www.vim.org/
- https://www.gnu.org/software/emacs/
- http://notepad-plus-plus.org/fr/
- https://wiki.gnome.org/Apps/Gedit
ViM
Une coloration syntaxique et un complètement des comptes sont possibles ainsi :
% mkdir -p ~/.vim/syntax
% wget -P ~/.vim/syntax/ <http://autogeree.net/~julm/src/vim/syntax/hledger.vim>
% cat >>~/.vimrc <<EOF
autocmd BufNewFile,BufRead *.hledger,*.ledger,*.journal setfiletype hledger
autocmd Filetype hledger set iskeyword+=.,38,39,40,41,44,45,58
EOF
Ouvrir le Plan_comptable.hledger
dans un onglet
est utile pour renseigner le complètement automatique
des comptes :
% gvim -p FICHIER.hledger Plan_comptable.hledger
Mémo d’utilisation courante
Filtrer des écritures touchant certains comptes
% hledger print -f FICHIER.hledger '^6' '^7'
Quasiment toutes les commandes hledger acceptent des motifs pour filtrer les écritures à prendre en compte ; c’est une fonctionnalité plus générale que le concept de « journal » ou « journal divisionnaire » implémenté dans certains logiciels.
Journaux
Filtres associés :
BQ
(Banque) :hledger print -f FICHIER.hledger '^5.Finance:1.Etablissement:2.Banque:'
HA
(Achats) :hledger print -f FICHIER.hledger '^(2.Immobilisation:1.Corporelle:|6.Charge:(0.Achat|1.Service|2.Autre_service):)'
Vente
:hledger print -f FICHIER.hledger '^7.Produit:0.Vente:'
Caisse
:hledger print -f FICHIER.hledger '^5.Finance:3.Caisse:'
Paye
:hledger print -f FICHIER.hledger '6.Charge:(3.Impôt:(1.|3.):|4.Personnel:)'
ANV
:hledger print -f FICHIER.hledger tag:ANV
OD
:hledger print -f FICHIER.hledger tag:OD
ATTENTION : ces filtres sont exhaustifs seulement dans le cas d’usage des cyclofficines.
Afficher des comptes et de leur montant
% hledger balance -f FICHIER.hledger
% hledger balance -f FICHIER.hledger '^6' '^7' # NOTE: tous les comptes de classe 6 ou 7
Consulter dans une page Web
% hledger-web --server -f FICHIER.hledger # NOTE: Ctrl-C plus tard pour couper le serveur
Puis aller avec un navigateur web à l’adresse indiquée, typiquement : http://localhost:5000/
Importer d’Oxygène dans hledger
% hledger-print-csv -f Plan_comptable.hledger >Plan_comptable.csv
% iconv -f latin1 -t utf8 <EXPORT.oxygen.csv |
perl ~/src/hledger/extra/hledger-of-oxygen-csv.pl \
Plan_comptable.csv \
>EXPORT.oxygen.hledger
Ressources :
- http://autogeree.net/~julm/src/hledger/extra/hledger-print-csv.hs
- http://autogeree.net/~julm/src/hledger/extra/hledger-of-oxygen-csv.pl
Corrections particulières
Substitutions de noms de compte à effectuer
sur EXPORT.Oxygen.hledger
dans le cas
des années 2011-2013 des cyclofficines :
% sed -i EXPORT.oxygen.hledger \
-e 's/^\t401[^ ]* /\t4.Tiers:0.Fournisseur:1.Fournisseur:1.Bien,Prestation /' \
-e 's/^\t512 /\t5.Finance:1.Etablissement:2.Banque:001.Courant /'