From: Julien Moutinho Date: Tue, 29 Jul 2014 19:50:46 +0000 (+0200) Subject: Ajout : doc/ X-Git-Tag: v2014.08.02~5 X-Git-Url: https://git.cyclocoop.org/?p=tool%2Fhledger.git;a=commitdiff_plain;h=61f2b02106365640f1fed2d4c3e8a1a7236bdb4e Ajout : doc/ --- diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0310995 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/tool/asciidoc"] + path = lib/tool/asciidoc + url = ./asciidoc diff --git a/doc/... b/doc/... new file mode 120000 index 0000000..a96aa0e --- /dev/null +++ b/doc/... @@ -0,0 +1 @@ +.. \ No newline at end of file diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..7dcbd51 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,3 @@ +old +*.zip +test.* diff --git a/doc/GNUmakefile b/doc/GNUmakefile new file mode 100644 index 0000000..fc5343d --- /dev/null +++ b/doc/GNUmakefile @@ -0,0 +1,38 @@ +tool:=$(dir $(lastword $(MAKEFILE_LIST))) + +all: $(HOME)/.asciidoc/backends/slidy2 + +$(HOME)/.asciidoc/backends/slidy2: tool:=$(tool) +$(HOME)/.asciidoc/backends/slidy2: \ + $(tool)/.../lib/tool/asciidoc/backend/slidy2/install + $< + +tool/asciidoc := $(tool)/.../lib/tool/asciidoc +include $(tool/asciidoc)/GNUmakefile + +export VERSION:=$(patsubst v%,%,$(shell which git >/dev/null && \ + git describe --tags --match 'v[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]' --always || \ + TZ=UTC date +'v%Y.%m.%d')) + +### lib +tool/lib/targets:=$(addprefix .../,$(shell cd ... && git config -f .gitmodules \ + --get-regexp submodule'\.lib/.*\.'path | \ + cut -d ' ' -f 2)) +.PHONY: $(tool/lib/targets) $(tool)/lib/all $(tool)/lib +$(tool/lib/targets): + cd "$(tool)"/... && git submodule update --init -- $(patsubst .../%,%,$@) + cd "$(tool)"/$@ && git checkout -f HEAD && git clean -dfx +$(tool)/.../lib: $(tool)/lib/all +$(tool)/.../lib/all: $(tool/lib/targets) +$(tool)/.../lib/tool/asciidoc/GNUmakefile: \ + $(if $(wildcard .../lib/tool/asciidoc/.git),,.../lib/tool/asciidoc) + + +### slidy +%.slidy.html: export ASCIIDOC_FLAGS+=-arevnumber="$(VERSION)" +%.slidy.html: export ASCIIDOC_FLAGS+=-atabsize=0 +%.slidy.html: export ASCIIDOC_FLAGS+=-alatexmath=0 + +$(patsubst %.ad,%.html,$(wildcard *.slidy.ad)): \ + $(tool/asciidoc)/conf/latexmath.conf \ + $(tool/asciidoc)/conf/vim.conf diff --git a/doc/data/Cyclofficine.Plan_comptable.hledger b/doc/data/Cyclofficine.Plan_comptable.hledger new file mode 100644 index 0000000..a40fb83 --- /dev/null +++ b/doc/data/Cyclofficine.Plan_comptable.hledger @@ -0,0 +1,379 @@ +01/01 Initialisation des comptes + 1.Capital 0 ; 1. COMPTES DE CAPITAUX + 1.Capital:0.Fonds 0 ; 10. Fonds associatifs et reserves + 1.Capital:0.Fonds:2.SDR 0 ; 102. Fonds associatifs sans droit de reprise (SDR) + 1.Capital:0.Fonds:2.SDR:4.Apport 0 ; 1024. Apports SDR + 1.Capital:0.Fonds:2.SDR:6.Sub_invest_BR 0 ; 1026. Subventions d’investissement (biens renouvelables) SDR + 1.Capital:0.Fonds:3.ADR 0 ; 103. Fonds associatifs avec droit de reprise (ADR) + 1.Capital:0.Fonds:3.ADR:4.Apport 0 ; 1034. Apports ADR + 1.Capital:0.Fonds:3.ADR:6.Sub_invest_BR 0 ; 1036. Subventions d’investissement (biens renouvelables) ADR + 1.Capital:0.Fonds:6.Réserve 0 ; 106. Réserves + 1.Capital:0.Fonds:6.Réserve:3.Statutaire 0 ; 1063. Réserves statutaires ou contractuelles + 1.Capital:0.Fonds:6.Réserve:8.Autre 0 ; 1068. Autres réserves (dont réserves pour projet associatif) + 1.Capital:1.Report 0 ; 11. Report à nouveau + 1.Capital:1.Report:0.Bénéfice 0 ; 110. Report à nouveau (solde créditeur/bénéfice) + 1.Capital:1.Report:5.Financeur 0 ; 115. Résultats sous contrôle de tiers financeurs + 1.Capital:1.Report:9.Déficit 0 ; 119. Report à nouveau (solde débiteur/perte) + 1.Capital:2.Résultat 0 ; 12. Résultat net de l’exercice + 1.Capital:2.Résultat:0.Bénéfice 0 ; 120. Résultat de l’exercice (excédent/bénéfice) + 1.Capital:2.Résultat:9.Déficit 0 ; 129. Résultat de l’exercice (déficit/perte) + 1.Capital:3.Sub_invest_BNR 0 ; 13. Subventions d’investissements (biens non renouvelables) ADR + 1.Capital:3.Sub_invest_BNR:1.Equipement 0 ; 131. Subventions d’équipement + 1.Capital:3.Sub_invest_BNR:1.Equipement:1.État 0 ; 1311. État + 1.Capital:3.Sub_invest_BNR:1.Equipement:2.Région 0 ; 1312. Région + 1.Capital:3.Sub_invest_BNR:1.Equipement:3.Département 0 ; 1313. Département + 1.Capital:3.Sub_invest_BNR:1.Equipement:4.Commune 0 ; 1314. Commune + 1.Capital:3.Sub_invest_BNR:1.Equipement:5.Collectivité_publique 0 ; 1315. Collectivités publiques + 1.Capital:3.Sub_invest_BNR:1.Equipement:6.Entreprise_publique 0 ; 1316. Entreprises publiques + 1.Capital:3.Sub_invest_BNR:1.Equipement:7.Organisme_privé 0 ; 1317. Entreprises et organismes privés + 1.Capital:3.Sub_invest_BNR:1.Equipement:8.Autre 0 ; 1318. Autres + 1.Capital:3.Sub_invest_BNR:8.Autre 0 ; 138. Autres subventions d’investissement + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat 0 ; 139. Subventions d’investissements inscrites au compte de résultat + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement 0 ; 1391. Subvention d'équipement + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:1.État 0 ; 13911. État + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:2.Région 0 ; 13912. Région + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:3.Département 0 ; 13913. Département + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:4.Commune 0 ; 13914. Commune + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:5.Collectivité_publique 0 ; 13915. Collectivités publiques + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:6.Entreprise_publique 0 ; 13916. Entreprises publiques + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:7.Organisme_privé 0 ; 13917. Entreprises et organismes privés + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:8.Autre 0 ; 13918. Autres + 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:2.Autre 0 ; 1392. Autres subventions d'investissement + 1.Capital:5.Provision_risque&charge 0 ; 15. Provisions pour risques et charges + 1.Capital:5.Provision_risque&charge:1.Risque 0 ; 151. Provisions pour risques + 1.Capital:5.Provision_risque&charge:5.Impôt 0 ; 155. Provisions pour impôts + 1.Capital:5.Provision_risque&charge:8.Autre 0 ; 158. Autres provisions pour charges + 1.Capital:5.Provision_risque&charge:8.Autre:2.Congés_à_payer 0 ; 1582. Provisions pour congés à payer + 1.Capital:6.Emprunt,Dette 0 ; 16. Emprunts et dettes assimilees + 1.Capital:6.Emprunt,Dette:4.Etablissement_crédit 0 ; 164. Emprunts auprès des établissements de crédit + 1.Capital:6.Emprunt,Dette:5.Dépôt,Caution 0 ; 165. Dépôts et cautionnements reçus + 1.Capital:6.Emprunt,Dette:8.Autre 0 ; 168. Autres emprunts et dettes assimilées + 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt 0 ; 1681. Autres emprunts + 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:1.Bénévole 0 ; 16811. Bénévoles + 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:2.Salarié-e 0 ; 16812. Salarié-e-s + 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:3.Cyclofficine 0 ; 16813. Cyclofficine + 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:4.Autre 0 ; 16814. Autre + 1.Capital:6.Emprunt,Dette:8.Autre:7.Dette 0 ; 1687. Autres dettes + 1.Capital:9.Fonds_dédiés 0 ; 19. Fonds dédiés + 1.Capital:9.Fonds_dédiés:4.Sub_exploit 0 ; 194. Fonds dédiés sur subventions de fonctionnement + 1.Capital:9.Fonds_dédiés:5.Don_affecté 0 ; 195. Fonds dédiés sur dons manuels affectés + 2.Immobilisation 0 ; 2. COMPTES D'IMMOBILISATIONS + 2.Immobilisation:1.Corporelle 0 ; 21. Immobilisations corporelles + 2.Immobilisation:1.Corporelle:5.Equipement 0 ; 215. Installations techniques, matériel et outillage industriels + 2.Immobilisation:1.Corporelle:8.Autre 0 ; 218. Autres immobilisations corporelles + 2.Immobilisation:1.Corporelle:8.Autre:1.Travaux 0 ; 2181. Installation générale, agencement, aménagement divers + 2.Immobilisation:1.Corporelle:8.Autre:2.Transport 0 ; 2182. Matériel de transport + 2.Immobilisation:1.Corporelle:8.Autre:3.Matériel_bureau&info 0 ; 2183. Matériel de bureau et matériel informatique + 2.Immobilisation:1.Corporelle:8.Autre:4.Mobilier 0 ; 2184. Mobilier + 2.Immobilisation:2.Concession 0 ; 22. Immobilisations mises en concession + 2.Immobilisation:2.Concession:8.Immo_grévées_droits 0 ; 228. Immobilisations grevées de droits + 2.Immobilisation:2.Concession:9.Droits_propriétaire 0 ; 229. Droits des propriétaires + 2.Immobilisation:6.Participation 0 ; 26.Participations et créances rattachées à des participations + 2.Immobilisation:6.Participation:1.Titre 0 ; 261. Titres de participation + 2.Immobilisation:6.Participation:1.Titre:8.Autre 0 ; 2618. Autres titres + 2.Immobilisation:7.Financière 0 ; 27. Autres immobilisations financières + 2.Immobilisation:7.Financière:4.Prêt 0 ; 274. Prêts + 2.Immobilisation:7.Financière:4.Prêt:3.Au_personnel 0 ; 2743. Prêts au personnel + 2.Immobilisation:7.Financière:4.Prêt:8.Autre 0 ; 2748. Autres prêts + 2.Immobilisation:7.Financière:5.Dépôt,Caution 0 ; 275. Dépôts et cautionnements versés + 2.Immobilisation:8.Amortissement 0 ; 28. Amortissements des immobilisations + 2.Immobilisation:8.Amortissement:1.Immo_corp 0 ; 281. Amortissements des immobilisations corporelles + 2.Immobilisation:8.Amortissement:1.Immo_corp:5.Equipement 0 ; 2815. Installations techniques, matériel et outillage industriels (même ventilation que celle du_compte_215) + 2.Immobilisation:8.Amortissement:1.Immo_corp:8.Autre 0 ; 2818. Autres immobilisations corporelles + 4.Tiers 0 ; 4. COMPTES TIERS + 4.Tiers:0.Fournisseur 0 ; 40. Fournisseurs et comptes rattachés + 4.Tiers:0.Fournisseur:1.Fournisseur 0 ; 401. Fournisseurs + 4.Tiers:0.Fournisseur:1.Fournisseur:1.Bien,Prestation 0 ; 4011. Fournisseurs - achats de biens ou de prestations de services + 4.Tiers:0.Fournisseur:1.Fournisseur:7.Retenue_garantie 0 ; 4017. Fournisseurs - Retenue de garantie + 4.Tiers:0.Fournisseur:3.Effets_à_payer 0 ; 403. Fournisseurs - effets à payer + 4.Tiers:0.Fournisseur:4.Immobilisation 0 ; 404. Fournisseurs d’immobilisations + 4.Tiers:0.Fournisseur:4.Immobilisation:1.Achat 0 ; 4041. Fournisseurs - Achats d'immobilisations + 4.Tiers:0.Fournisseur:4.Immobilisation:7.Retenue_garantie 0 ; 4047. Fournisseurs d'immobilisations - Retenue de garantie + 4.Tiers:0.Fournisseur:5.Immo_effets_à_payer 0 ; 405. Fournisseurs d’immobilisations - Effets à payer + 4.Tiers:0.Fournisseur:8.Facture_non_parvenue 0 ; 408. Fournisseurs - Factures non parvenues + 4.Tiers:0.Fournisseur:8.Facture_non_parvenue:1.Bien,Prestation 0 ; 4081. Fournisseurs - Achats de biens ou prestations de service + 4.Tiers:0.Fournisseur:8.Facture_non_parvenue:4.Immobilisation 0 ; 4084. Fournisseurs - Achats d'immobilisations + 4.Tiers:0.Fournisseur:9.Débiteur 0 ; 409. Fournisseurs débiteurs + 4.Tiers:0.Fournisseur:9.Débiteur:1.Accompte 0 ; 4091. Fournisseurs - Avances et accomptes versés sur commandes + 4.Tiers:0.Fournisseur:9.Débiteur:7.Autre_avoir 0 ; 4097. Autres avoirs + 4.Tiers:1.Client 0 ; 41. Usagers et comptes rattachés + 4.Tiers:1.Client:1.Client 0 ; 411. Clients + 4.Tiers:1.Client:1.Client:1.Bien,Prestation 0 ; 4111. Clients - Vente de biens et prestations de service + 4.Tiers:1.Client:1.Client:7.Retenue_garantie 0 ; 4117. Clients - Retenue de garantie + 4.Tiers:1.Client:3.Effets_à_recevoir 0 ; 413. Clients - Effets à recevoir + 4.Tiers:1.Client:8.Produit_non_facturé 0 ; 418. Clients - Produits non encore facturés + 4.Tiers:1.Client:9.Créditeur 0 ; 419. Clients créditeurs + 4.Tiers:1.Client:9.Créditeur:1.Accompte 0 ; 4191. Clients - Avances et accomptes versés sur commandes + 4.Tiers:1.Client:9.Créditeur:7.Autre_avoir 0 ; 4197. Clients - Autres avoirs + 4.Tiers:2.Personnel 0 ; 42. Personnel et comptes rattachés + 4.Tiers:2.Personnel:1.Rémunération 0 ; 421. Rémunérations dues + 4.Tiers:2.Personnel:1.Rémunération:011801.S_Arca 0 ; 421011801. S. Arca + 4.Tiers:2.Personnel:1.Rémunération:030101.G_Caprarelli 0 ; 421030101. G. Caprarelli + 4.Tiers:2.Personnel:1.Rémunération:060101.T_Favier 0 ; 421060101. T.Favier + 4.Tiers:2.Personnel:1.Rémunération:131501.A_Morin 0 ; 421131501. A. Morin + 4.Tiers:2.Personnel:1.Rémunération:161501.S_Popek 0 ; 421161501. S. Popek + 4.Tiers:2.Personnel:5.Avances 0 ; 425. Personnel - Avances et accomptes + 4.Tiers:2.Personnel:8.CP&PR 0 ; 428. Personnel - Charges à payer et produits à recevoir + 4.Tiers:2.Personnel:8.CP&PR:2.Congés_à_payer 0 ; 4282. Dettes provisionnées pour congés à payer + 4.Tiers:2.Personnel:8.CP&PR:6.Autre_charge_à_payer 0 ; 4286. Autres charges à payer + 4.Tiers:2.Personnel:8.CP&PR:7.Produit_à_recevoir 0 ; 4287. Produits à recevoir + 4.Tiers:3.Caisse_sociale 0 ; 43. Securite sociale et autres organismes sociaux + 4.Tiers:3.Caisse_sociale:1.URSSAF 0 ; 431. URSSAF + 4.Tiers:3.Caisse_sociale:7.Autre 0 ; 437. Autres organismes sociaux + 4.Tiers:3.Caisse_sociale:7.Autre:3.B2V 0 ; 4373. Caisse de retraite + 4.Tiers:3.Caisse_sociale:7.Autre:8.Autre 0 ; 4378. Autres organismes sociaux + 4.Tiers:3.Caisse_sociale:7.Autre:8.Autre:1.AG2R 0 ; 43781. Prévoyance + 4.Tiers:3.Caisse_sociale:8.CP&PR 0 ; 438. Charges à payer et produits à recevoir + 4.Tiers:3.Caisse_sociale:8.CP&PR:2.Cotisation_congé_à_payer 0 ; 4382. Cotisations sociales sur congés à payer + 4.Tiers:3.Caisse_sociale:8.CP&PR:6.Autre_charge_à_payer 0 ; 4386. Autres charges à payer + 4.Tiers:3.Caisse_sociale:8.CP&PR:7.Produit_à_recevoir 0 ; 4387. Produits à recevoir + 4.Tiers:4.État,collectivité 0 ; 44. État et autres collectivites publiques + 4.Tiers:4.État,collectivité:1.Sub_à_recevoir 0 ; 441. Subventions à recevoir + 4.Tiers:4.État,collectivité:1.Sub_à_recevoir:1.Investissement 0 ; 4411. Subventions d'investissement + 4.Tiers:4.État,collectivité:1.Sub_à_recevoir:7.Exploitation 0 ; 4417. Subventions d'exploitation + 4.Tiers:4.État,collectivité:1.Sub_à_recevoir:8.Equilibre 0 ; 4418. Subvention d'équilibre + 4.Tiers:4.État,collectivité:1.Sub_à_recevoir:9.Avance_sur_sub 0 ; 4419. Avances sur subventions + 4.Tiers:4.État,collectivité:3.Opération_particulière 0 ; 443. Opérations particulières avec l’État, les collectivités publiques, les organismes internationaux + 4.Tiers:4.État,collectivité:4.Impôt_sur_bénéfice 0 ; 444. État- Impôts sur les bénéfices + 4.Tiers:4.État,collectivité:4.Impôt_sur_bénéfice:5.Sur_société 0 ; 4445. État - Impôt sur les sociétés + 4.Tiers:4.État,collectivité:7.Autre_impôt 0 ; 447.Autres impôts, taxes et versements assimilés + 4.Tiers:4.État,collectivité:7.Autre_impôt:1.Sur_rémunération_(État) 0 ; 4471. Impôts, taxes et versements assimilés sur rémunérations (administration des impôts) + 4.Tiers:4.État,collectivité:7.Autre_impôt:1.Sur_rémunération_(État):1.Taxe_salaire 0 ; 44711. Taxe sur les salaires + 4.Tiers:4.État,collectivité:7.Autre_impôt:1.Sur_rémunération_(État):2.Formation_pro 0 ; 44712. Participation des employeurs à la formation professionnelle continue + 4.Tiers:4.État,collectivité:7.Autre_impôt:1.Sur_rémunération_(État):8.Autre 0 ; 44718. Autres impôts, taxes et versements assimilés + 4.Tiers:4.État,collectivité:7.Autre_impôt:3.Sur_rémunération_(Organisme) 0 ; 4473. Impôts, taxes et versements sur rémunérations (autres organismes) + 4.Tiers:4.État,collectivité:7.Autre_impôt:3.Sur_rémunération_(Organisme):3.Formation_pro 0 ; 44733. Participation des employeurs à la formation professionnelle continue + 4.Tiers:4.État,collectivité:7.Autre_impôt:5.Autre_(État) 0 ; 4475. Autres impôts, taxes et versements assimilés (administration des impôts) + 4.Tiers:4.État,collectivité:7.Autre_impôt:7.Autre_(Organisme) 0 ; 4477. Autres impôts, taxes et versements assimilés (autres organismes) + 4.Tiers:4.État,collectivité:8.CP&PR 0 ; 448. État - Charges à payer et produits à recevoir + 4.Tiers:4.État,collectivité:8.CP&PR:2.Charge_fiscale_sur_congés_à_payer 0 ; 4482. Charges fiscales sur congés à payer + 4.Tiers:4.État,collectivité:8.CP&PR:6.Charge_à_payer 0 ; 4486. Autres charges à payer + 4.Tiers:4.État,collectivité:8.CP&PR:7.Produit_à_recevoir 0 ; 4487. Produits à recevoir + 4.Tiers:6.Divers_créditeur_débiteur 0 ; 46. Débiteurs divers et créditeurs divers + 4.Tiers:6.Divers_créditeur_débiteur:7.Autre 0 ; 467. Autres comptes débiteurs ou créditeurs + 4.Tiers:6.Divers_créditeur_débiteur:7.Autre:001.Bénévole 0 ; 467001. Bénévoles + 4.Tiers:6.Divers_créditeur_débiteur:7.Autre:002.Salarié-e 0 ; 647002. Salariés + 4.Tiers:6.Divers_créditeur_débiteur:8.CP&PR 0 ; 468. Divers - Charges à payer et produits à recevoir + 4.Tiers:6.Divers_créditeur_débiteur:8.CP&PR:6.Charge_à_payer 0 ; 4686.Charges à payer + 4.Tiers:6.Divers_créditeur_débiteur:8.CP&PR:7.Produit_à_recevoir 0 ; 4687. Produits à recevoir + 4.Tiers:8.Régularisation 0 ; 48. Comptes de régularisation + 4.Tiers:8.Régularisation:6.Charge_constatée_d'avance 0 ; 486. Charges constatées d’avance + 4.Tiers:8.Régularisation:7.Produit_constaté_d'avance 0 ; 487. Produits constatés d’avance + 5.Finance 0 ; 5. COMPTES FINANCIERS + 5.Finance:1.Etablissement 0 ; 51. Banques, établissements financiers et assimilés + 5.Finance:1.Etablissement:1.Valeur 0 ; 511. Valeurs à l’encaissement + 5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser 0 ; 5112. Chèques à encaisser + 5.Finance:1.Etablissement:2.Banque:001.Courant 0 ; 512001. Crédit Coopératif - Compte courant + 5.Finance:1.Etablissement:2.Banque:002.Livret 0 ; 512002. Crédit coopératif - Livret + 5.Finance:3.Caisse 0 ; 53. Caisse + 5.Finance:3.Caisse:1.Siège 0 ; 531. Caisse du siège + 5.Finance:3.Caisse:2.Atelier 0 ; 532. Caisse des lieux d’activités + 5.Finance:8.Virement 0 ; 58. Virements internes + 5.Finance:8.Virement:0.Interne 0 ; 580. Virements internes + 5.Finance:8.Virement:1.Fonds 0 ; 581. Virements de fonds + 6.Charge 0 ; 6. COMPTES D'ACHATS + 6.Charge:0.Achat 0 ; 60. Achats (sauf 603) + 6.Charge:0.Achat:1.Stocké-Matière_Prem,Fourniture 0 ; 601. Achats stockés - Matières premières et fournitures + 6.Charge:0.Achat:1.Stocké-Matière_Prem,Fourniture:1.Matière 0 ; 6011. Matières + 6.Charge:0.Achat:1.Stocké-Matière_Prem,Fourniture:2.Fourniture 0 ; 6012. Fournitures + 6.Charge:0.Achat:2.Stocké-Autre 0 ; 602. Achats stockés - Autres approvisionnements + 6.Charge:0.Achat:2.Stocké-Autre:1.Matière_consommable 0 ; 6021. Matières consommables + 6.Charge:0.Achat:2.Stocké-Autre:2.Fourniture_consommable 0 ; 6022. Fournitures consommables + 6.Charge:0.Achat:2.Stocké-Autre:2.Fourniture_consommable:1.Combustible 0 ; 60221. Combustibles + 6.Charge:0.Achat:2.Stocké-Autre:2.Fourniture_consommable:2.Nettoyage 0 ; 60222. Produits d’entretien + 6.Charge:0.Achat:2.Stocké-Autre:2.Fourniture_consommable:3.Atelier 0 ; 60223. Fournitures d’atelier + 6.Charge:0.Achat:2.Stocké-Autre:2.Fourniture_consommable:5.Bureau 0 ; 60225. Fournitures de bureau + 6.Charge:0.Achat:3.Variation_stocks 0 ; 603. Variation des stocks (approvisionnements et marchandises) + 6.Charge:0.Achat:4.Etude,Prestation 0 ; 604. Achats d’études et prestations de services + 6.Charge:0.Achat:5.Matériel,Equipement,Travaux 0 ; 605. Achats de matériels, équipements et travaux + 6.Charge:0.Achat:6.Non_stocké 0 ; 606. Achats non stockés de matières et fournitures + 6.Charge:0.Achat:6.Non_stocké:1.Non_stockable 0 ; 6061. Fournitures non stockables (eau, énergie..) + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture 0 ; 6063. Fournitures d’entretien et de petit équipement + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:1.Produit_entretien 0 ; 60631. Produits d'entretien + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:2.Travaux 0 ; 60632. Fournitures pour travaux + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:3.Equipement_atelier 0 ; 60633. Equipement d'atelier + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:4.Outillage 0 ; 60634. Outillage + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:5.Mobilier 0 ; 60635. Mobilier + 6.Charge:0.Achat:6.Non_stocké:3.Fourniture:6.Matériel_informatique 0 ; 60636. Matériel informatique + 6.Charge:0.Achat:6.Non_stocké:4.Consommable_bureau 0 ; 6064. Fournitures de bureau + 6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture 0 ; 6068. Autres matières et fournitures + 6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:1.Atelier 0 ; 60681. Consommables, fournitures atelier et vélos + 6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:8.Autre 0 ; 60688. Autre matières et fournitures + 6.Charge:0.Achat:7.Marchandise 0 ; 607. Achats de marchandises + 6.Charge:0.Achat:8.Frais_accessoire 0 ; 608. Frais accessoires d’achats + 6.Charge:0.Achat:9.Remise 0 ; 609. Rabais, remises et ristournes obtenus sur achats + 6.Charge:1.Service 0 ; 61. Services extérieurs + 6.Charge:1.Service:1.Sous-traitance 0 ; 611. Sous-traitance générale + 6.Charge:1.Service:3.Location 0 ; 613. Locations + 6.Charge:1.Service:3.Location:2.Immobilière 0 ; 6132. Locations immobilières + 6.Charge:1.Service:3.Location:5.Mobilière 0 ; 6135. Locations mobilières + 6.Charge:1.Service:4.Charge_locative 0 ; 614. Charges locatives et de copropriété + 6.Charge:1.Service:5.Entretien_Réparation 0 ; 615. Entretien et réparations + 6.Charge:1.Service:5.Entretien_Réparation:2.Bien_immobilier 0 ; 6152. Sur biens immobiliers + 6.Charge:1.Service:5.Entretien_Réparation:5.Bien_mobilier 0 ; 6155. Sur biens mobiliers + 6.Charge:1.Service:5.Entretien_Réparation:6.Maintenance 0 ; 6156. Maintenance + 6.Charge:1.Service:6.Assurance 0 ; 616. Primes d’assurance + 6.Charge:1.Service:8.Divers 0 ; 618. Divers + 6.Charge:1.Service:9:Remise 0 ; 619. Rabais, remises et ristournes obtenus sur services extérieurs + 6.Charge:2.Autre_service 0 ; 62. Autres services extérieurs + 6.Charge:2.Autre_service:1.Personnel_extérieur 0 ; 621. Personnel extérieur à l’association + 6.Charge:2.Autre_service:1.Personnel_extérieur:4.Mise_à_dispo 0 ; 6214. Personnel détaché ou prêté à l’association + 6.Charge:2.Autre_service:2.Intermédiaire 0 ; 622. Rémunérations d’intermédiaires et honoraires + 6.Charge:2.Autre_service:2.Intermédiaire:6.Honoraire 0 ; 6226. Honoraires + 6.Charge:2.Autre_service:2.Intermédiaire:7.Frais_d'acte 0 ; 6227. Frais d’actes et de contentieux + 6.Charge:2.Autre_service:2.Intermédiaire:8.Divers 0 ; 6228. Divers + 6.Charge:2.Autre_service:3.Communication 0 ; 623. Publicité, publications, relations publiques + 6.Charge:2.Autre_service:3.Communication:1.Annonce 0 ; 6231. Annonces et insertions + 6.Charge:2.Autre_service:3.Communication:3.Foire,Expo 0 ; 6233. Foires et expositions + 6.Charge:2.Autre_service:3.Communication:4:Cadeau 0 ; 6234. Cadeaux + 6.Charge:2.Autre_service:3.Communication:6.Catalogue,Imprimé 0 ; 6236. Catalogues et imprimés + 6.Charge:2.Autre_service:3.Communication:7.Publication 0 ; 6237. Publications + 6.Charge:2.Autre_service:3.Communication:8.Divers(pourboire,dons_courants) 0 ; 6238. Divers (pourboires, dons courants..) + 6.Charge:2.Autre_service:5.Frais 0 ; 625. Déplacements, missions et réceptions + 6.Charge:2.Autre_service:5.Frais:1.Déplacement 0 ; 6251. Voyages et déplacements + 6.Charge:2.Autre_service:5.Frais:6.Mission 0 ; 6256. Missions + 6.Charge:2.Autre_service:5.Frais:7.Réception 0 ; 6257. Réceptions + 6.Charge:2.Autre_service:6.Poste,Télécommunication 0 ; 626. Frais postaux et frais de télécommunications + 6.Charge:2.Autre_service:6.Poste,Télécommunication:1.Internet 0 ; 6261. Liaisons informatiques ou spécialisées + 6.Charge:2.Autre_service:6.Poste,Télécommunication:3.Timbre 0 ; 6263. Affranchissements + 6.Charge:2.Autre_service:7.Service_bancaire 0 ; 627. Services bancaires et assimilés + 6.Charge:2.Autre_service:8.Divers 0 ; 628. Divers + 6.Charge:2.Autre_service:8.Divers:1.Cotisation_(activité_économique) 0 ; 6281. Cotisations (liées à l’activité économique) + 6.Charge:2.Autre_service:8.Divers:4.Frais_recrutement_personnel 0 ; 6284. Frais de recrutement du personnel + 6.Charge:2.Autre_service:9.Remise 0 ; 629. Rabais, remises et ristournes obtenus sur autres services extérieurs + 6.Charge:3.Impôt 0 ; 63. Impôts, taxes et versements assimilés + 6.Charge:3.Impôt:1.Sur_rémunération_(État) 0 ; 631. Impôts, taxes et versements assimilés sur rémunérations (administration des impôts) + 6.Charge:3.Impôt:1.Sur_rémunération_(État):1.Taxe_salaire 0 ; 6311. Taxe sur les salaires + 6.Charge:3.Impôt:1.Sur_rémunération_(État):3.Formation_pro 0 ; 6313. Participation des employeurs à la formation professionnelle continue + 6.Charge:3.Impôt:1.Sur_rémunération_(État):8.Autre 0 ; 6318. Autres + 6.Charge:3.Impôt:3.Sur_rémunération_(Organisme) 0 ; 633. Impôts, taxes et versements assimilés sur rémunérations (autres organismes) + 6.Charge:3.Impôt:3.Sur_rémunération_(Organisme):3.Formation 0 ; 6333. Participation des employeurs à la formation professionnelle continue + 6.Charge:3.Impôt:3.Sur_rémunération_(Organisme):8.Autre 0 ; 6338. Autres + 6.Charge:3.Impôt:5.Autre_(État) 0 ; 635. Autres impôts, taxes et versements assimilés (administration des impôts) + 6.Charge:3.Impôt:5.Autre_(État):1.Direct_(sauf_bénéfice) 0 ; 6351. Impôts directs (sauf impôts sur les bénéfices) + 6.Charge:3.Impôt:5.Autre_(État):1.Direct_(sauf_bénéfice):2.Taxe_foncière 0 ; 63512. Taxes foncières + 6.Charge:3.Impôt:5.Autre_(État):1.Direct_(sauf_bénéfice):3.Autre_impôts_locaux 0 ; 63513. Autres impôts locaux + 6.Charge:3.Impôt:5.Autre_(État):1.Direct_(sauf_bénéfice):8.Autre 0 ; 63518. Autres impôts directs + 6.Charge:3.Impôt:5.Autre_(État):3.Indirect 0 ; 6353. Impôts indirects + 6.Charge:3.Impôt:7.Autre_(Organisme) 0 ; 637. Autres impôts, taxes et versements assimilés (autres organismes) + 6.Charge:4.Personnel 0 ; 64. Charges de personnel + 6.Charge:4.Personnel:1.Rémunération 0 ; 641. Rémunérations du personnel + 6.Charge:4.Personnel:1.Rémunération:1.Salaire 0 ; 6411. Salaires, appointements + 6.Charge:4.Personnel:1.Rémunération:2.Congés 0 ; 6412. Congés payés + 6.Charge:4.Personnel:1.Rémunération:3.Prime 0 ; 6413. Primes et gratifications + 6.Charge:4.Personnel:1.Rémunération:4.Indémnité 0 ; 6414. Indemnités et avantages divers + 6.Charge:4.Personnel:1.Rémunération:6.Remb_transport 0 ; 6416. Remboursement transport + 6.Charge:4.Personnel:5.Cotisation 0 ; 645. Cotisations de sécurité sociale et de prévoyance + 6.Charge:4.Personnel:5.Cotisation:1.URSSAF 0 ; 6451. Cotisations à l’URSSAF + 6.Charge:4.Personnel:5.Cotisation:2.Mutuelle 0 ; 6452. Cotisations aux mutuelles + 6.Charge:4.Personnel:5.Cotisation:3.Retraite 0 ; 6453. Cotisations aux caisses de retraite + 6.Charge:4.Personnel:5.Cotisation:4.Pôle_emploi 0 ; 6454. Cotisations aux ASSEDIC + 6.Charge:4.Personnel:5.Cotisation:8.Autre_organisme 0 ; 6458. Cotisations aux autres organismes sociaux + 6.Charge:4.Personnel:5.Cotisation:8.Autre_organisme:1.Prévoyance 0 ; 64581. Caisse de Prévoyance + 6.Charge:4.Personnel:7.Autre_cotisation 0 ; 647. Autres charges sociales + 6.Charge:4.Personnel:7.Autre_cotisation:5.Médecine_travail 0 ; 6475. Médecine de travail, pharmacie + 6.Charge:4.Personnel:8.Autre_charge_personnel 0 ; 648. Autres charges de personnel + 6.Charge:4.Personnel:8.Autre_charge_personnel:8.Cotisation_sur_rémunération_à_payer 0 ; 6488. Cotisations sur rémunérations à payer + 6.Charge:5.Gestion 0 ; 65. Autres charges de gestion courantes + 6.Charge:5.Gestion:1.Redevance_pour_concession,brevet,licence,procédé,droit 0 ; 651. Redevances pour concessions, brevets, licences, procédés, logiciels, droits et valeurs similaires + 6.Charge:5.Gestion:7.Subvention_versée 0 ; 657. Subventions versées par l’organisme + 6.Charge:5.Gestion:8.Divers 0 ; 658. Charges diverses de gestion courante + 6.Charge:5.Gestion:8.Divers:6.Cotisation_(vie_statutaire) 0 ; 6586. Cotisations (liées à la vie statutaire) + 6.Charge:6.Financière 0 ; 66. Charges financières + 6.Charge:6.Financière:1.Intérêt 0 ; 661. Charges d’intérêts + 6.Charge:6.Financière:1.Intérêt:1.Emprunt,Dette 0 ; 6611. Intérêts des emprunts et dettes + 6.Charge:6.Financière:1.Intérêt:6.Bancaire 0 ; 6616. Intérêts bancaires + 6.Charge:6.Financière:1.Intérêt:8.Autre_dette 0 ; 6618. Intérêts des autres dettes + 6.Charge:6.Financière:8.Autre 0 ; 668. Autres charges financières + 6.Charge:7.Exceptionnelle 0 ; 67. Charges exceptionnelles + 6.Charge:7.Exceptionnelle:1.Sur_gestion 0 ; 671. Charges exceptionnelles sur opérations de gestion + 6.Charge:7.Exceptionnelle:1.Sur_gestion:1.Pénalité_sur_marché 0 ; 6711. Pénalités sur marchés (et dédits payés sur achats et ventes) + 6.Charge:7.Exceptionnelle:1.Sur_gestion:2.Pénalité,Amende 0 ; 6712. Pénalités, amendes fiscales ou pénales + 6.Charge:7.Exceptionnelle:1.Sur_gestion:3.Don,Libéralité 0 ; 6713. Dons, libéralités + 6.Charge:7.Exceptionnelle:1.Sur_gestion:7.Rappel_impôt_(sauf_bénéfice) 0 ; 6717. Rappels d’impôts (autres qu’impôts sur les bénéfices) + 6.Charge:7.Exceptionnelle:1.Sur_gestion:8.Autre 0 ; 6718. Autres charges exceptionnelles sur opérations de gestion + 6.Charge:7.Exceptionnelle:8.Autre 0 ; 678. Autres charges exceptionnelles + 6.Charge:7.Exceptionnelle:8.Autre:8.Diverse 0 ; 6788. Charges exceptionnelles diverses + 6.Charge:8.Dotation 0 ; 68. Dotations aux amortissements, dépréciations, provisions et engagements + 6.Charge:8.Dotation:1.Charge_d'exploitation 0 ; 681. Dotations aux amortissements et aux provisions - Charges d'exploitation + 6.Charge:8.Dotation:1.Charge_d'exploitation:1.Amortissement_immobilisation 0 ; 6811. Dotations aux amortissements des immobilisations incorporelles et corporelles + 6.Charge:8.Dotation:1.Charge_d'exploitation:1.Amortissement_immobilisation:1.Incorporelle 0 ; 68111. Immobilisations incorporelles + 6.Charge:8.Dotation:1.Charge_d'exploitation:1.Amortissement_immobilisation:2.Corporelle 0 ; 68112. Immobilisations corporelles + 6.Charge:8.Dotation:1.Charge_d'exploitation:5.Provision_d'exploitation 0 ; 6815. Dotations aux provisions pour risques et charges d’exploitation + 6.Charge:8.Dotation:1.Charge_d'exploitation:7.Dépréciation_actif 0 ; 6817. Dotations aux provisions pour dépréciation des actifs circulants + 6.Charge:8.Dotation:1.Charge_d'exploitation:7.Dépréciation_actif:3.Stocks,En-cours 0 ; 68173. Stocks et en-cours + 6.Charge:8.Dotation:1.Charge_d'exploitation:7.Dépréciation_actif:4.Créance 0 ; 68174. Créances + 6.Charge:8.Dotation:6.Charge_financière 0 ; 686. Dotations aux amortissements et aux provisions - Charges financières + 6.Charge:8.Dotation:6.Charge_financière:5.Provision_financière 0 ; 6865. Dotations aux provisions pour risques et charges financiers + 6.Charge:8.Dotation:6.Charge_financière:6.Dépréciation_élément_financier 0 ; 6866. Dotations aux provisions pour dépréciation des éléments financiers + 6.Charge:8.Dotation:6.Charge_financière:8.Autre 0 ; 6868. Autres dotations + 6.Charge:8.Dotation:7.Charge_exceptionnelle 0 ; 687. Dotations aux amortissements et aux provisions - Charges exceptionnelles + 6.Charge:8.Dotation:9.Engagement_à_réaliser 0 ; 689. Engagements à réaliser sur ressources affectées + 6.Charge:8.Dotation:9.Engagement_à_réaliser:4.Sur_subvention_attribuée 0 ; 6894. Engagements à réaliser sur subventions attribuées + 6.Charge:8.Dotation:9.Engagement_à_réaliser:5.Sur_don_affecté 0 ; 6895. Engagements à réaliser sur dons manuels affectés + 6.Charge:9.Impôt_sur_bénéfice 0 ; 69. Impôts sur les bénéfices + 6.Charge:9.Impôt_sur_bénéfice:5.Impôt_sur_société 0 ; 695.Impôts sur les sociétés + 7.Produit 0 ; 7. COMPTES DE PRODUITS + 7.Produit:0.Vente 0 ; 70. ventes de produits finis, prestations de services, marchandises + 7.Produit:0.Vente:1.Produit_fini 0 ; 701. Ventes de produits finis + 7.Produit:0.Vente:1.Produit_fini:1.Vélo 0 ; 7011. Vélos + 7.Produit:0.Vente:1.Produit_fini:2.Autre 0 ; 7012. Autres + 7.Produit:0.Vente:6.Prest'action 0 ; 706. Prestations de services + 7.Produit:0.Vente:7.Marchandise 0 ; 707. Ventes de marchandises + 7.Produit:0.Vente:8.Activité_annexe 0 ; 708. Produits des activités annexes + 7.Produit:0.Vente:8.Activité_annexe:3.Location 0 ; 7083. Locations diverses + 7.Produit:0.Vente:8.Activité_annexe:4.Mise_à_dispo 0 ; 7084. Mise à disposition de personnel facturée + 7.Produit:0.Vente:8.Activité_annexe:8.Autre 0 ; 7088. Autres produits d’activités annexes + 7.Produit:1.Production_stockée 0 ; 71. Production stockée (ou déstockage) + 7.Produit:2.Production_immobilisée 0 ; 72. Production immobilisée + 7.Produit:4.Subvention_d'exploitation 0 ; 74. Subventions d’exploitation + 7.Produit:4.Subvention_d'exploitation:1.État 0 ; 741. État + 7.Produit:4.Subvention_d'exploitation:2.Région 0 ; 742. Région + 7.Produit:4.Subvention_d'exploitation:3.Département 0 ; 743. Département + 7.Produit:4.Subvention_d'exploitation:4.Commune 0 ; 744. Commune + 7.Produit:4.Subvention_d'exploitation:5.Collectivité_publique 0 ; 745. Collectivités publiques + 7.Produit:4.Subvention_d'exploitation:6.Entreprise_publique 0 ; 746. Entreprises publiques + 7.Produit:4.Subvention_d'exploitation:7.Organisme_privé 0 ; 747. Entreprises et organismes privés + 7.Produit:4.Subvention_d'exploitation:8.Autre 0 ; 748. Autres + 7.Produit:5.Autre_gestion_courante 0 ; 75. Autres produits de gestion courante + 7.Produit:5.Autre_gestion_courante:4.Collecte 0 ; 754. Collectes + 7.Produit:5.Autre_gestion_courante:6.Cotisation 0 ; 756. Cotisations + 7.Produit:5.Autre_gestion_courante:8.Divers 0 ; 758. Produits divers de gestion courante + 7.Produit:5.Autre_gestion_courante:8.Divers:1.Don 0 ; 7581. Dons manuels + 7.Produit.6.Financier 0 ; 76. Produits financiers + 7.Produit.6.Financier:1.Participation 0 ; 761. Produits des participations + 7.Produit.6.Financier:1.Participation:1.Titre 0 ; 7611. Revenus des titres de participations + 7.Produit.6.Financier:2.Autre_immobilisation_financière 0 ; 762. Produits des autres immobilisations financières + 7.Produit.6.Financier:2.Autre_immobilisation_financière:4.Prêt 0 ; 7624. Revenus des prêts + 7.Produit.6.Financier:3.Autre_créance 0 ; 763. Revenus des autres créances + 7.Produit.6.Financier:8.Autre 0 ; 768. Autres produits financiers + 7.Produit.7.Exceptionnel 0 ; 77. Produits exceptionnels + 7.Produit.7.Exceptionnel:1.Sur_gestion 0 ; 771. Produits exceptionnels sur opérations de gestion + 7.Produit.7.Exceptionnel:1.Sur_gestion:3.Libéralité_reçue 0 ; 7713. Libéralités perçues + 7.Produit.7.Exceptionnel:1.Sur_gestion:5.Subvention_d'équilibre 0 ; 7715. Subvention d’équilibre + 7.Produit.7.Exceptionnel:1.Sur_gestion:8.Autre 0 ; 7718. Autres produits exceptionnels sur opérations de gestion + 7.Produit.7.Exceptionnel:2.Sur_exercice_antérieur 0 ; 772. Produits sur exercices antérieurs (à reclasser) + 7.Produit.7.Exceptionnel:7.Quote-part_subvention_investissement_virée_au_résultat 0 ; 777. Quote-part des subventions d’investissement virée au résultat de l’exercice + 7.Produit.7.Exceptionnel:8.Autre 0 ; 778. Autres produits exceptionnels + 7.Produit:8.Reprise 0 ; 78. Reprises sur amortissements et provisions + 7.Produit:8.Reprise:1.Amortissement,Provision_(exploitation) 0 ; 781. Reprises sur amortissements et provisions (à inscrire dans les produits d’exploitation) + 7.Produit:8.Reprise:1.Amortissement,Provision_(exploitation):1.Amort_immo_incorp&corpl 0 ; 7811. Reprises sur amortissements des immobilisations incorporelles et corporelles + 7.Produit:8.Reprise:1.Amortissement,Provision_(exploitation):5.Provision_risque&charge 0 ; 7815. Reprises sur provisions pour risques et charges d’exploitation + 7.Produit:8.Reprise:6.Provision_(financier) 0 ; 786. Reprises sur provisions (à inscrire dans les produits financiers) + 7.Produit:8.Reprise:7.Provision_(exceptionnel) 0 ; 787. Reprises sur provisions (à inscrire dans les produits exceptionnels) + 7.Produit:8.Reprise:9.Report_ressource_N-1 0 ; 789. Report des ressources non utilisées des exercices antérieurs + 7.Produit:8.Reprise:9.Report_ressource_N-1:4.Sur_subvention_attribuée 0 ; 7894. Sur subventions attribués + 7.Produit:8.Reprise:9.Report_ressource_N-1:5.Sur_don_reçus 0 ; 7895. Sur dons manuels reçus + 7.Produit:9.Transfert_charge 0 ; 79. Transferts de charges + 7.Produit:9.Transfert_charge:1.Exploitation 0 ; 791. Transferts de charges d’exploitation + 7.Produit:9.Transfert_charge:6.Financière 0 ; 796. Transferts de charges financières + 7.Produit:9.Transfert_charge:7.Exceptionnelle 0 ; 797. Transferts de charges exceptionnelles + 8.Spécial 0 ; 8. COMPTES SPÉCIAUX + 8.Spécial:6.Emploi_contribution_volontaire 0 ; 86. Emplois des contributions volontaires en nature + 8.Spécial:6.Emploi_contribution_volontaire:1.Mise_à_dispo_bien 0 ; 861. Mise à disposition gratuite de biens + 8.Spécial:6.Emploi_contribution_volontaire:2.Prestation 0 ; 862. Prestations + 8.Spécial:6.Emploi_contribution_volontaire:4.Bénévolat 0 ; 864. Personnel bénévole + 8.Spécial:7.Contribution_volontaire 0 ; 87. Contributions volontaires en nature + 8.Spécial:7.Contribution_volontaire:0.Bénévolat 0 ; 870. Bénévolat + 8.Spécial:7.Contribution_volontaire:1.Prestation_en_nature 0 ; 871. Prestations en nature + 8.Spécial:7.Contribution_volontaire:5.Don_en_nature 0 ; 875. Dons en nature diff --git a/doc/data/gvimdiff-cumulative-historical.png b/doc/data/gvimdiff-cumulative-historical.png new file mode 100644 index 0000000..d80069e Binary files /dev/null and b/doc/data/gvimdiff-cumulative-historical.png differ diff --git a/doc/data/hledger.splash.png b/doc/data/hledger.splash.png new file mode 100644 index 0000000..0d54fd9 Binary files /dev/null and b/doc/data/hledger.splash.png differ diff --git a/doc/hledger.fr.slidy.ad b/doc/hledger.fr.slidy.ad new file mode 100644 index 0000000..27d0628 --- /dev/null +++ b/doc/hledger.fr.slidy.ad @@ -0,0 +1,614 @@ += Informatiser une comptabilité avec confiance +:author: git://git.autogeree.net/tool/hledger +:copyright: © 2014 (CC) BY Julien Moutinho <julm+hledger@autogeree.net> +:icons: +:iconsdir: ./icons +:numbered: +:toc: +:slidebackground: hledgersplash +:slidefontsizeadjust: -3 +:incremental: +:revremark: +//:max-width: 45em +:scriptsdir: $PWD/javascripts +ifdef::backend-slidy2[:data-uri:] + +ifdef::backend-slidy2[:slidebackground!:] + +// a2x: --xsltproc-opts "--stringparam ulink.show 1" +// a2x: --xsltproc-opts "--stringparam ulink.footnotes 1" +// :source-highlighter: vim + + +== Le ++.ledger++ : un format de __Grand Livre__ ouvert.. et simple + +[source,hledger] +---- +2014/05/01 Stand manif + Don:Anonyme -42 + Caisse:Grève 42 + +2014/05/08 Propagande + Caisse:Grève -7 + Achat:Impression:Tracts 7 + +; Répéter ad nauseam +---- + +ifdef::backend-slidy2[>>>] +=== Les plus +[horizontal] +Transparent:: Visibilité de _toutes_ les informations. +Pérenne:: Compréhensible sans peine. +Modifiable:: Pas d’interface protectrice. +Accès:: Pas de changement d’interface non-consenti. +Versionnable:: Suivi et fusion simples des modifications. +Écrit:: Langage pour s’exprimer clairement, par exemple pour discuter dans un courriel. +Hors-ligne:: Pas besoin de réseau. +Interopérable:: +Pas spécifique à un éditeur logiciel particulier +(sauf fonctionnalité expérimentale). +* http://ledger-cli.org/[] +* http://hledger.org/[] +* http://furius.ca/beancount/[] +* https://massysett.github.io/penny/[] +* https://github.com/hrj/abandon/[] + +=== Les moins +[horizontal] +Modifiable:: +Mais pas moins que les autres logiciels +et à nuancer si couplé à un gestionnaires de versions, +et/ou avec signature cryptographiques. ++ +[source,sh] +---- +% git tag --sign v2011 -m "Clôture de la comptabilité 2011" +% git tag --verify v2011 +---- ++ +[source,sh] +---- +% gpg --sign $fichier.hledger +% gpg --verify-files $fichier.hledger.gpg +---- + +Textuel:: Préférable de bien savoir utiliser +un éditeur de texte structuré. +Peu contraint:: ++ +[source,hledger] +---- +2102/03/21 Remise chq (1101804) + 5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser -145,00 + 5.Finance:1.Etablissement:2.Banque:001.Courant 145,00 +---- + +NOTE: KISS + + +== ++hledger++ : un outil libre.. et convivial +[source,sh] +---- +% hledger balance '^6' '^7' --depth 2 -f Paris.2011.hledger + 770,58€ 6.Charge + 248,87€ 0.Achat + 441,46€ 1.Service + 55,25€ 2.Autre_service + 25,00€ 5.Gestion + -726,00€ 7.Produit + -700,00€ 0.Vente + -26,00€ 5.Autre_gestion_courante +‑------------------- + 44,58€ +---- + +ifdef::backend-slidy2[>>>] +=== Les plus + +Utilisation:: +Étude:: +Modification:: +Duplication:: +Permises techniquement et légalement + +(« logiciel libre » sous ++GNU/GPLv3++) + +Certification:: +Programmé en http://fr.wikipedia.org/wiki/Haskell[Haskell] +[horizontal] +Fonctionnel pur;; Aucune mutation de données externes à une fonction (effet de bord). +Typage statique;; Vérification des erreurs de type avant l’exécution du programme. +Typage fort;; Aucune conversion implicite de types de données. + +Portable:: GNU/Linux, Apple/MacOS, Microsoft/Windows + +Support:: ~1 développeur à mi-temps ++ +* Simon Michael + +[horizontal] +Ligne de commande:: ++ +[source,sh] +---- + % hledger balance -f $fichier.hledger +---- +Interface Web:: ++ +[source,sh] +---- + % hledger-web --server -f $fichier.hledger + % firefox "http://localhost:5000" +---- +Extensible:: ++ +[source,sh] +---- + % ghc hledger-fait-ce-que-je-veux.hs + % ./hledger-fait-ce-que-je-veux -f $fichier.hledger +---- + +ifdef::backend-slidy2[>>>] +=== Les moins +Ligne de commande:: ++ +... + +== Installer `hledger` + +* http://hledger.org/installing[] + +[source,sh] +.Debian/jessie +---- +% sudo apt-get install hledger hledger-web +---- + +ifdef::backend-slidy2[>>>] +=== Via `cabal` +* http://www.haskell.org/cabal/[] + +[source,sh] +.Debian/wheezy +---- +% echo 'PATH="$HOME/.cabal/bin:$PATH"' >>~/.profile + # NOTE: rajoute dans le chemins des exécutables + # les exécutables installés par cabal +% exit # NOTE: recharge ~/.profile + +% sudo apt-get install ghc cabal-install \ + libncurses5-dev libtinfo-dev zlib1g-dev +% cabal update +% cabal install cabal # NOTE: met à jour cabal +% 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 +---- + +[source,sh] +.Mise-à-jour +---- +% cabal install --reinstall hledger hledger-web +---- + +ifdef::backend-slidy2[>>>] +==== Version de développement + +[source,sh] +---- +% git clone http://github.com/simonmichael/hledger.git ~/src/hledger +% cd ~/src/hledger +% cabal install --reinstall --force-reinstalls \ + ./hledger-lib ./hledger ./hledger-web +---- + +== Écrire en +.ledger+ +Un +.ledger+ est un fichier de texte brut respectant une syntaxe préçise +qui forme une succession d’écritures comptables, ordonnées librement. + +ifdef::backend-slidy2[>>>] +=== Exemple +[source,hledger] +---- +; Ceci est un exemple de livre comptable « ledger » +; NOTE: fantaisiste comptablement parlant, mais syntaxiquement correct + +2014/01/01 Libellé de l’écriture ; UN_TAG:, Autre_tag:Avec_Valeur + Compte:Sous-Compte -42 ; flux créditant + Autre_Compte:Sous-Compte:Sous-Sous-Compte 42 ; flux débitant + +2014/01/01 Deuxième écriture le même jour + Vente:Âme -666 ; (tag de flux) Arnaque: + Kapital 666 + +2014/01/02 Troisième écriture le jour suivant avec ventilation des flux + Compte:Crédité:A -1 + Compte:Crédité:B -2 + Compte:Débité:Z 1 + Compte:Débité:Y 1 + Compte:Débité:X:x 1 + +2014/04/12 + Compte:Crédité -1234,56 + Compte:Débité ; 1234,56 (montant inféré) + +2014/02/01 Écriture non ordonnée par date ; Ok, mais déconseillé + Compte:Débité 1 + Compte:Crédité -1 ; Flux non ordonné par crédit/débit + ; c'est juste moins lisible... + +; Répéter ad nauseam +---- + +=== Langage + +[cols="a,a",options="header"] +|================================== +^|Syntaxe (grammaire https://fr.wikipedia.org/wiki/Forme_de_Backus-Naur[BNF]) +^|Structure (signatures fonctionnelles) +| +[source,conf] +----------------------------------- +livre ::= (écriture \| commentaire \| "⏎" \| "␣")* +----------------------------------- +| +[horizontal] +:role: math +**livre**:: latexmath:[$ + :\>f:\textcolor{#D2691E}{\textbf{fichier}} → + \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack$] +| +[source,conf] +---- +écriture ::= date "␣" "␣"* libellé commentaire "⏎" + ("␣" flux "⏎")* +date ::= (année "/")? mois "/" jour +libellé ::= (· - (";"\|"⏎"))* +---- +| +[horizontal] +:role: math +**date**:: latexmath:[$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + (\textcolor{#083194}{\textbf{ann\acute{e}e}}:\textcolor{#D2691E}{\textbf{ℕ}},~ + \textcolor{#083194}{\textbf{mois}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{12}}\},~ + \textcolor{#083194}{\textbf{jour}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{31}}\})$] +**libellé**:: latexmath:[$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \textcolor{#D2691E}{\textbf{texte}}$] +**commentaire**:: latexmath:[$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \textcolor{#D2691E}{\textbf{texte}}$] +**tags**:: latexmath:[$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack + \ =\ \textbf{tags}~(\textbf{commentaire}~e)$] +**flux**:: latexmath:[$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$] +| +[source,conf] +---- +flux ::= compte "␣␣" "␣"* ("-" crédit \| débit) ("␣"\|"⏎")* commentaire +compte ::= nom ( ":" nom )* +nom ::= (· - (":"\|"⏎")) (· - (":"\|"⏎"))* +crédit ::= quantité +débit ::= quantité +---- +| +[horizontal] +:role: math +**compte**:: latexmath:[$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → + \lbrack\textcolor{#D2691E}{\textbf{nom}}\rbrack$] +**montant**:: +latexmath:[$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → \textcolor{#D2691E}{ℚ} = \displaystyle{ + \left\{\begin{array}{ll} -~(\textbf{cr\acute{e}dit}~f) & \mathit{\mbox{si défini}} \\ + (\textbf{d\acute{e}bit}~f) & \mathit{\mbox{sinon}} + \end{array}\right}$] +**tags**:: latexmath:[$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack + \ =\ \textbf{tags}~(\textbf{commentaire}~f)$] +| +[source,conf] +---- +commentaire ::= ( ";" (tag ":" valeur? \| ·)* ) + ( ("⏎"\|"␣")* ";" (tag ":" valeur? \| ·)* )* +---- +| +[horizontal] +:role: math +**tags**:: latexmath:[$ + :\>m:\textcolor{#D2691E}{\textbf{commentaire}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack$] +**tag**:: latexmath:[$ + :\>(\textcolor{#083194}{\textbf{tag}}:\textcolor{#D2691E}{\textbf{texte}},% + ~\textcolor{#083194}{\textbf{valeur}}:\textcolor{#D2691E}{\textbf{\mbox{texte}}\>?})$] +|================================== + +NOTE: RTFM @ http://hledger.org/manual/[]. + + +=== Calculs + +[horizontal] +**compte_parent**:: + latexmath:[$:\>c : \textcolor{#D2691E}{\textbf{compte}} → \textcolor{#D2691E}{\textbf{compte}}\>?$] + + latexmath:[$=\>c_{\lbrack0,\cdots,|c|-2\rbrack}\ \mbox{si}\ |c| \ge 2$] +**hiérarchie_de_compte**:: + latexmath:[$:\>\mathbb c : \textcolor{#D2691E}{\textbf{compte}} → \lbrack\textcolor{#D2691E}{\textbf{compte}}\rbrack$] + + latexmath:[$=\>\lbrack{\ c\ :\ \lbrack{\ c\ |\ c ← (\mathbf{compte\mbox{_}parent}\>{c})}\ \rbrack}\ \rbrack$] +**comptes**:: + latexmath:[$:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → \{\textcolor{#D2691E}{\textbf{compte}}\}$] + + latexmath:[$\{\ (\textbf{compte}\>f)\ |\ f ← (\textbf{flux}\>e)\ |\ e ← \mathbb E\ \}$] +**balance**:: + latexmath:[$:\>\mathbb F : \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack → ℚ$] + + latexmath:[$=\>{(\ m\ |\ m ← m + (\textbf{montant}\>f)\ |\ f ← \mathbb F\ |\ m ← 0\ )$] + +**solde_de_compte**:: + latexmath:[$:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → c : \textcolor{#D2691E}{\textbf{compte}} → ℚ$] + + latexmath:[$=\>{\textbf{balance}\>\lbrack{\ f\ |\ f ← (\textbf{flux}\>e),\ c\>≼\>(\textbf{compte}\>f)\ |\ e ← \mathbb E\ }\rbrack$] + +// latexmath:[$=\>{\displaystyle{\sum_{e ← \mathbb E}}\left(\sum_{\stackrel{f ← (\textbf{flux}\>e),}{c\ ≼\ (\textbf{compte}\>f)}}(\textbf{montant}\>f})\right)$] +**solde**:: + latexmath:[$:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → + \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$] + + latexmath:[$=\>\displaystyle{\left\lbrack + \begin{array}{l} + (\textcolor{#083194}{\textbf{compte}}=c´, \textcolor{#083194}{\textbf{montant}}=m) \\ + |\ m ← (\mathbf{\mbox{solde_de_compte}}\,\mathbb E\,c´) \\ + |\ c´ ← (\mathbf{hi\acute{e}rarchie\mbox{_}de\mbox{_}compte}\,c) \\ + |\ c ← (\mathbf{comptes}\,\mathbb E) + \end{array}}\right\rbrack$] + + +=== Utiliser un éditeur de texte structuré (`vim`) + +Coloration syntaxique sur mesure:: +* ++hledger.vim++ ++ +[source,vim] +.~/.vimrc +---- +autocmd BufNewFile,BufRead *.hledger,*.ledger setfiletype hledger +---- +Complètement automatique des comptes (``):: ++ +* https://github.com/Shougo/neocomplete.vim[] +* https://github.com/Shougo/neocomplcache.vim[] ++ +[source,vim] +.~/.vimrc +---- +autocmd Filetype hledger set iskeyword+=.,38,39,40,41,44,45,58 " +---- +Alignement automatique des montants:: ++ +* https://github.com/junegunn/vim-easy-align[] ++ +[source,vim] +.~/.vimrc +---- + let g:easy_align_ignore_groups = ['Comment', 'String', 'hledgerTransaction'] +---- + +ifdef::backend-slidy2[>>>] +==== Suivre les modifications à plusieurs et/ou à distance (`git`) +TODO + +== Commandes `hledger` + +ifdef::backend-slidy2[>>>] +=== Calculer des soldes (`balance`) +[source,sh] +---- +% hledger balance -f $fichier.ledger $filtre +---- + +[source,sh] +.Suivi des comptes +---- +% hledger balance -b 2012/02/01 -e 2012/04/30 --monthly -f $fichier.ledger >/tmp/bal.flow +% hledger balance -b 2012/02/01 -e 2012/04/30 --cumulative --monthly -f $fichier.ledger >/tmp/bal.cumulative +% hledger balance -b 2012/02/01 -e 2012/04/30 --historical --monthly -f $fichier.ledger >/tmp/bal.historical +% gvimdiff -o /tmp/bal.{cumulative,historical} +---- +image::data/gvimdiff-cumulative-historical.png[] + +ifdef::backend-slidy2[>>>] +=== Filtrer des écritures (`print`) +TODO + +ifdef::backend-slidy2[>>>] +=== Suivre un compte (`register`) +TODO + +ifdef::backend-slidy2[>>>] +=== Observer des statistiques (`stats`, `activity`) +TODO + + +== Exercice comptable + +ifdef::backend-slidy2[>>>] +=== Plan comptable d’une association + +* DOC : https://wiki.cyclocoop.org/Comptabilité/Document/Plan_comptable/[] + +[source,hledger] +---- +#include::data/Cyclofficine.Plan_comptable.hledger[] +---- + +=== Comptabiliser en partie double + +Solde nul de toute écriture:: ++ +Pour toute écriture;; +Tout ce qui est _débité_ (+++++) dans ses comptes + +est forcément _crédité_ (++-++) dans ses autres comptes. ++ +* latexmath:[$\forall e : \textcolor{#D2691E}{\textbf{\acute{e}criture}}, + \ \textbf{balance}\>(\textbf{flux}\>{e}) = 0$] + +Relation de Chasles par écritures d’engagement et de paiement:: ++ +[source,hledger] +---- +01/01 Écriture d’engagement + 7.Produit:0.Vente:1.Produit_fini:1.Vélo -80 + 5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser 80 + +01/02 Écriture de paiement + 5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser -80 + 5.Finance:1.Etablissement:2.Banque:001.Courant 80 +---- ++ +NOTE: pour des espèces, transiter par : ++5.Finance:3.Caisse:1.Siège++ + +==== Soldes nuls souhaitables + +- Écritures des recettes ++ +1. latexmath:[$\sum{\mbox{ventes}} + \sum{\mbox{dons}} = \sum{\mbox{espèces entrées en caisse}} + \sum{\mbox{Chèques à encaisser}}$] + +(Total des ventes + dons == Total d’espèces entrée en caisse + Chèques à encaisser (5112)) +2. Total chèques à encaisser (5112) == Total remises de chèques à la banque (512) (+/- argent non déposé en banque) +3. Solde du compte caisse (531) == Total entrées espèces en caisse - Total des sorties (remises d’espèces en banque - sorties d’achats - erreur de caisse) +4. Solde compte caisse (531) == Total entrées en caisse - Dépôt espèce en banque - Achat en espèce + + +- Écritures de paye ++ +TODO + + +=== Journaux (filtres) +[horizontal] +**Banque**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger '^5.Finance:1.Etablissement:2.Banque:' +---- +**Achats**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger '^(2.Immobilisation:1.Corporelle:|6.Charge:(0.Achat|1.Service|2.Autre_service):)' +---- +**Vente**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger '^7.Produit:0.Vente:' +---- +**Caisse**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger '^5.Finance:3.Caisse:' +---- +**Paye**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger '6.Charge:(3.Impôt:(1.|3.):|4.Personnel:)' +---- +**À NouVeaux**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger tag:ANV +---- +**Opération_Diverses**:: ++ +[source,sh] +---- +hledger print -f $fichier.ledger tag:OD +---- + +=== Clôture / Ouverture (`equity`) +++hledger-equity++ calcule une balance de comptes +et en fait deux écritures, respectivement : +[horizontal] +de clôture:: pour les solder à zéro en fin d’exercice ; +d’ouverture:: pour les réinitialiser à leur solde du précédent exercice. + +[source,sh] +---- +% hledger-equity -f $fichier.ledger $filtre +---- + +[source,hledger] +.Solde des compte de gestion +---- +% hledger-equity '^6' '^7' -f Paris.2011.hledger +2014/07/29 + 6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:1.Atelier -248,87€ + 6.Charge:1.Service:3.Location:2.Immobilière -441,46€ + 6.Charge:2.Autre_service:3.Communication:6.Catalogue,Imprimé -24,00€ + 6.Charge:2.Autre_service:7.Service_bancaire -31,25€ + 6.Charge:5.Gestion:8.Divers:6.Cotisation_(vie_statutaire) -25,00€ + 7.Produit:0.Vente:6.Prest'action 700,00€ + 7.Produit:5.Autre_gestion_courante:6.Cotisation 20,00€ + 7.Produit:5.Autre_gestion_courante:8.Divers 6,00€ + equity:closing balances 44,58€ + +2014/07/29 + 6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:1.Atelier 248,87€ + 6.Charge:1.Service:3.Location:2.Immobilière 441,46€ + 6.Charge:2.Autre_service:3.Communication:6.Catalogue,Imprimé 24,00€ + 6.Charge:2.Autre_service:7.Service_bancaire 31,25€ + 6.Charge:5.Gestion:8.Divers:6.Cotisation_(vie_statutaire) 25,00€ + 7.Produit:0.Vente:6.Prest'action -700,00€ + 7.Produit:5.Autre_gestion_courante:6.Cotisation -20,00€ + 7.Produit:5.Autre_gestion_courante:8.Divers -6,00€ + equity:opening balances -44,58€ +---- + +== Import et export avec `hledger` + +* https://github.com/eval/total_recall[] +* https://github.com/quentinsf/icsv2ledger[] + +=== Feuilles de calculs des documents comptables + +ifdef::backend-slidy2[>>>] +==== Bilan financier +TODO + +ifdef::backend-slidy2[>>>] +==== Comptes de résultats +TODO + +== `hledger-web` +TODO + +== (bonus) Scripter ++hledger++ +TODO + +ifdef::backend-slidy2[>>>] +=== Installer un script ++hledger++ +[source,sh] +---- +% echo 'PATH="$HOME/src/hledger/extra:$PATH"' >>~/.profile +% exit # NOTE: recharge ~/.profile +% ghc ~/src/hledger/extra/hledger-SCRIPT.hs +---- + +== Communauté + +[horizontal] +Chat:: +Liste:: + + + +ifdef::backend-slidy2[] +[hledgersplash,position: absolute; left: 50%; top: 10%;] +&&&& +image::data/hledger.splash.png[hledgersplash] +&&&& +endif::backend-slidy2[] diff --git a/doc/hledger.fr.slidy.css b/doc/hledger.fr.slidy.css new file mode 100644 index 0000000..e8128ee --- /dev/null +++ b/doc/hledger.fr.slidy.css @@ -0,0 +1,467 @@ +html body { + color:#343434; + font-family:serif; + font-size:10px; + margin:0 0; + padding:0 0 0 0; + } +/* titres */ + h1, h2, h3, h4, h5, h6 { + font-family: serif; + } + div.slide h1 { + margin: 0 0 0 0 !important; + } + #revnumber { + font-family: serif; + font-size:inherit; + font-weight:bold; + } +/* sections */ + .article { + } + .article > .sect1, + .article > .sect2, + .article > .sect3 { + -moz-box-sizing:border-box; + -webkit-box-sizing:border-box; + box-sizing:border-box; + clear:both; + display:table; + float:left; + margin:0 auto 0 auto; + padding:0 1em 0 1em; + width:100%; + } + .article > .sect1:last-child { + margin-bottom:2ex; + } + .article > .sect1 * { + clear:both; + } + .article > .refnamediv > *, + .article > .sect1 > *, + .article > .refsynopsisdiv > * { + } + .article > .sect1 > .sect2 > * { + margin-left:1em; + } + .article > .sect1 > .sect2 > .sect3 > * { + margin-left:2em; + } +/* text */ + a:empty { + margin:0 0 0 0; + padding:0 0 0 0; + } + .article em { + color:#000080; + } + .article .emphasis { + text-decoration:underline; + } + .article p { + margin:0 0 0 0; + max-width:34em; + padding:1ex 0 0 0; + text-align:justify; + } + .article h2 + p { + margin-top:0; + padding-top:0.25ex; + } + .article h3 + p, + .article h3 + p[title] { + margin-top:0; + padding-top:0; + } +/* citations */ + .article code, + .article code.literal { + background-color:#EEEEEE; + color:inherit !important; + font-family:monospace,Courier; + white-space:pre; + font-size:90%; + } + .article pre { + /*background-color: #ffffff;*/ + font-family:monospace,Courier; + line-height:1.3; /* TODO: 1.2 ? */ + color: #000000; + font-family: monospace; + line-height: 1.13; + overflow: auto; + white-space: pre; + } + .article pre.literallayout { + border-left:1ex solid navy; + margin-left:0; + padding-left:1ex; + } + .article .screen { + border-width:0px 0px 0px 5px; + color:black; + display:inline-block; + margin:0.5ex 0 0.5ex 0; + } + .article .programlisting { + color:black; + margin-left:2em; + margin-right:2em; + } + .article .listitem > .simpara { + display:inline; + margin-bottom:0; + } +/* titles */ + .article > .sect1 > h2 { + border-bottom:2px solid black; + /*box-shadow:0px 1px 00px #888888;*/ + color:green; + font-family:monospace,Arial,sans-serif; + font-size:120%; + /*font-variant:small-caps;*/ + line-height:1.2; + margin:1ex 0 0.5ex 0; + padding:0 0 0.5ex 0; + } + .article > .refnamediv > h2, + .article > .refsynopsisdiv > h2 { + font-variant:small-caps; + } + .article > .sect1 > .sect2 > h3 { + color:DarkGreen; + font-family:monospace,Arial,sans-serif; + font-size:100%; + padding:1.5ex 0 0.5ex 0; + margin:0 0 0 0; + } + .article > .sect1 > h2 + .sect2 > h3 { + padding-top:0; + } + .article > .sect1 > .sect2 > h3:before, + .article .toc .sect2:before { + color:black; + content:"► "; + font-family:monospace,Arial,sans-serif; + float:left; + } + .article > .sect1 > .sect2 > .sect3 > h4 { + color:DarkGreen; + font-family:monospace,Arial,sans-serif; + font-size:100%; + padding:1em 0 0 0; + margin:0 0 0 0; + } + .article > .sect1 > .sect2 > .sect3 > h4:before, + .article .toc .sect3:before { + color:black; + content:"►► "; + font-family:monospace,Arial,sans-serif; + float:left; + } + .article li.listitem > p.simpara:first-child { + margin-top:0; + } + .article p .formalpara-title { + /* XXX: there is a docbook-xsl bug here: + * https://lists.oasis-open.org/archives/docbook-apps/201107/msg00003.html + */ + color:black; + font-weight:bold; + line-height:1.4; + margin:0 0 0 0; + padding:0 0 0 0; + text-align:left; + } + .article p[title] { + margin:1ex 0 0 0; + max-width:none; + padding:0 0 0 0; + } + .article span.citerefentry > span.articletitle { + white-space:nowrap; + } +/* lists */ + .article .hdlist p { + padding:0 0 0 0; + } + .article .hdlist td.hdlist1 { + text-align:right; + vertical-align:top; + } + .article .hdlist td.hdlist1, + .article .hdlist td.hdlist1 { + text-align:right; + } + .article .hdlist td.hdlist2 { + text-align:left; + padding:0 0 0 0; + vertical-align:middle; + } + .article .hdlist td.hdlist2 > .listingblock { + margin-top: 0; + } + .article .hdlist.math td.hdlist1, + .article .hdlist.math td.hdlist2 { + vertical-align:middle !important; + } + .article .calloutlist p { + padding:0 0 0 0; + } + .article .calloutlist td { + padding:0 0 0 0; + } + .article .calloutlist td p { + } + .article .calloutlist td:first-child { + padding-right:1em; + } + .article .calloutlist td:first-child p { + text-align:right; + } + .article .itemizedlist, + .article .orderedlist { + padding:0 0 0 0; + margin:0 0 0 0; + } + .article .itemizedlist ul, + .article .orderedlist ol { + padding:0 0 0 0; + margin:0 0 0 1.5em; + list-style-position:outside; + } + .article .itemizedlist ul li, + .article .orderedlist ol li { + margin:0 0 0 0; + max-width:51em; + padding:0 0 0 0; + } + .article .dlist { + padding:0 0 0 0; + margin:0 0 0 0; + } + .article .dlist dl { + list-style-position:outside; + margin:0 0 0 0; + padding:0.5ex 0 0 0; + } + .article .dlist dl dt { + margin:0 0 0 0; + padding-left:1px; + } + .article .dlist dl dd { + border-left:1px dotted black; + margin:0.5ex 0 0.5ex 0.9ex; + max-width:51em; + padding-left:1.1ex; + text-align:justify; + } + .article .dlist dl dd > p:first-child { + padding-top:0; + } + .article .dlist dl dd > p:last-child { + padding-bottom:0; + } + .article .dlist dt:before, + .article .toc dt:before { + color:black; + content:"▪ "; + font-family:monospace,Arial,sans-serif; + float:left; + } + .article h2 + .itemizedlist ul, + .article h2 + .orderedlist ol, + .article h2 + .dlist dl { + padding-top:0; + } +/* fhs */ + .article a[href^="#fhs:"] { + white-space:pre; + } + .article .toc a[href^="#fhs:"] { + white-space:normal; + } +/* sidebar */ + .article .sidebar { + -moz-box-sizing:border-box; + -webkit-box-sizing:border-box; + background:none repeat scroll 0 0 #FFFFEE; + border:1px solid #C0C0C0; + box-sizing:border-box; + clear:both; + float:left; + height:96%; + left:0; + margin:1em 0 0 1em; + overflow:auto; + padding:1ex 1em 1ex 1em; + position:fixed; + top:0; + width:30em; + } + .article .sidebar .refnamediv { + margin:0 0 1ex 0; + } + .article .sidebar .refnamediv h2 { + border-bottom:2px solid black; + color:green; + font-family:monospace,Arial,sans-serif; + font-size:120%; + font-variant:small-caps; + border-bottom:0 solid black; + margin:0 0 0.5ex 0; + padding:0 0 0 0; + } + .article .sidebar .refnamediv p { + margin:0 0 0 0; + padding:0 0 0 0; + text-align:justify; + } +/* location */ + .article .location { + margin:0 0 0 0; + } + .article .location .location-title { + display:inline-block; + } + .article .location .location-path { + display:inline-block; + margin-left:1em; + margin-bottom:0.5ex; + } + .article .location .location-path a { + display:inline-block; + } + .article .location .location-path .dir { + color:blue; + font-weight:bold; + } + .article .location .location-path .dir .slash { + color:black; + } + .article .location .location-path .file { + font-weight:bold; + } +/* language */ + .article .language { + margin:0 0 0 0; + } + .article .language .language-title { + display:inline-block; + } + .article .language .language-list { + display:inline-block; + font-weight:bold; + margin-left:1em; + } + .article .language .language-list .lang-available { + color:blue; + } + .article .language .language-list .lang-current { + color:black; + } +/* toc */ + .article .toc { + } + .article .toc dl { + clear:left; + margin-left:0; + padding-left:0; + } + .article .toc dl dd { + border-left:1px dotted #333; + margin-bottom:1px; + margin-left:0.1ex; + padding-left:1.9ex; + } + .article .toc dl dt span.refsynopsisdiv { + } + .article .toc .sect1:before { + color:black; + content:"§ "; + font-family:monospace,Arial,sans-serif; + float:left; + } + .article .toc .toc-title, + .article .language .language-title, + .article .location .location-title { + border-bottom:0 solid black; + color:green; + font-size:120%; + font-variant:small-caps; + font-weight:bold; + margin-bottom:0.5ex; + } + div.slidy_toc, + body > div.slidy_toc, + .article div.slidy_toc { + background: none repeat scroll 0 0 #F0F0F0; + border-style: solid; + border-width: 2px; + font-size: 100%; + height: 80%; + left: auto !important; + bottom: auto !important; + right: 0 !important; + max-width: none !important; + width: 50% !important; + overflow: auto; + padding: 1em; + position: absolute; + top: 0; + z-index: 300; + } + .article div.toc-heading { + border-bottom: 1px solid #B4B4B4; + font-weight: bold; + margin-bottom: 1em; + text-align: center; + width: 100%; + } +/* incremental preview */ + body.single_slide .invisible { + opacity: 0.15; + visibility: visible; + } + img.invisible { + visibility: hidden !important; + } +/* image */ + .imageblock img { + border:1px solid black; + display:block; + margin:0 auto 0 auto; + } +/* splash */ + div.hledgersplash > div.imageblock { + /*border:black solid 1px;*/ + left:-50%; + position:relative; + } +/* vim syntax */ + pre .Error { color: #8080ff; background-color: #ffffff; } + pre .PreProc { color: #ff6060; text-decoration: underline; font-weight: bold; } + pre .Special { color: #8080ff; font-weight: bold; } + pre .Constant { color: #ff40ff; text-decoration: none; } + pre .Statement { color: #B8860B; font-weight: bold; } + pre .Identifier { color: #ffff00; text-decoration: underline; } + pre .Comment { color: #4169e1; font-weight: bold; } +/* vim syntax: hledger */ + pre .hledgerNumberOdd { color: #0000ff; background-color: #e5e5e5; font-weight: bold; } + pre .hledgerPostingAmountOdd { color: #eead0e; background-color: #e5e5e5; font-weight: bold; } + pre .hledgerAccountSeparatorOdd { color: #eead0e; background-color: #e5e5e5; font-weight: bold; } + pre .hledgerPostingAccountOdd { color: #4d4d4d; background-color: #e5e5e5; } + pre .hledgerNumber { color: #0000ff; background-color: #90ee90; font-weight: bold; } + pre .hledgerPostingAmount { color: #eead0e; background-color: #90ee90; font-weight: bold; } + pre .hledgerAccountSeparator { color: #eead0e; background-color: #90ee90; font-weight: bold; } + pre .hledgerPostingAccount { color: #4d4d4d; background-color: #90ee90; } + pre .hledgerTagValue { color: #ff0000; } + pre .hledgerTag { color: #ffa500; font-weight: bold; } + pre .hledgerTransactionComment { color: #4169e1; font-weight: bold; } + pre .hledgerTransaction { font-weight: bold; } + pre .hledgerTransactionDate { background-color: #eedd82; font-weight: bold; } + pre .hledgerDirective { font-weight: bold; } + pre .hledgerInclude { font-weight: bold; } + pre .hledgerComment { color: #4169e1; font-weight: bold; } diff --git a/doc/hledger.fr.slidy.d b/doc/hledger.fr.slidy.d new file mode 100644 index 0000000..35e97e4 --- /dev/null +++ b/doc/hledger.fr.slidy.d @@ -0,0 +1,2 @@ +hledger.fr.slidy.ad \ +hledger.fr.slidy.d: \ diff --git a/doc/hledger.fr.slidy.html b/doc/hledger.fr.slidy.html new file mode 100644 index 0000000..a5c4fca --- /dev/null +++ b/doc/hledger.fr.slidy.html @@ -0,0 +1,8273 @@ + + + + + + + +Informatiser une comptabilité avec confiance + + + + + + + + + + + + + + + +
+ +
+

1. Le .ledger : un format de Grand Livre ouvert.. et simple

+ +
+
+
+2014/05/01 Stand manif
+	Don:Anonyme   -42
+	Caisse:Grève   42
+
+2014/05/08 Propagande
+	Caisse:Grève             -7
+	Achat:Impression:Tracts   7
+
+; Répéter ad nauseam
+
+
+ + +
+

1.1. Les plus

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Transparent +
+
+

+Visibilité de toutes les informations. +

+
+Pérenne +
+
+

+Compréhensible sans peine. +

+
+Modifiable +
+
+

+Pas d’interface protectrice. +

+
+Accès +
+
+

+Pas de changement d’interface non-consenti. +

+
+Versionnable +
+
+

+Suivi et fusion simples des modifications. +

+
+Écrit +
+
+

+Langage pour s’exprimer clairement, par exemple pour discuter dans un courriel. +

+
+Hors-ligne +
+
+

+Pas besoin de réseau. +

+
+Interopérable +
+
+

+Pas spécifique à un éditeur logiciel particulier +(sauf fonctionnalité expérimentale). +

+ +
+
+ +
+ +
+

1.2. Les moins

+ +
+
+ + + + + + + + + + + + +
+Modifiable +
+
+

+Mais pas moins que les autres logiciels +et à nuancer si couplé à un gestionnaires de versions, +et/ou avec signature cryptographiques. +

+
+
+% git tag --sign   v2011 -m "Clôture de la comptabilité 2011"
+% git tag --verify v2011
+
+
+
+% gpg --sign         $fichier.hledger
+% gpg --verify-files $fichier.hledger.gpg
+
+
+Textuel +
+
+

+Préférable de bien savoir utiliser +un éditeur de texte structuré. +

+
+Peu contraint +
+
+
+
+2102/03/21 Remise chq (1101804)
+	5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser  -145,00
+	5.Finance:1.Etablissement:2.Banque:001.Courant            145,00
+
+
+
+ + + +
+Note +KISS
+
+
+ +
+ +
+

2. hledger : un outil libre.. et convivial

+ +
+
+
+% hledger balance '^6' '^7' --depth 2 -f Paris.2011.hledger
+             770,58€  6.Charge
+             248,87€    0.Achat
+             441,46€    1.Service
+              55,25€    2.Autre_service
+              25,00€    5.Gestion
+            -726,00€  7.Produit
+            -700,00€    0.Vente
+             -26,00€    5.Autre_gestion_courante
+‑-------------------
+              44,58€
+
+
+ + +
+

2.1. Les plus

+ +
+
+
+Utilisation +
+
+Étude +
+
+Modification +
+
+Duplication +
+
+

+Permises techniquement et légalement
+(« logiciel libre » sous GNU/GPLv3) +

+
+
+Certification +
+
+

+Programmé en Haskell +

+
+ + + + + + + + + + + + +
+Fonctionnel pur +
+
+

+Aucune mutation de données externes à une fonction (effet de bord). +

+
+Typage statique +
+
+

+Vérification des erreurs de type avant l’exécution du programme. +

+
+Typage fort +
+
+

+Aucune conversion implicite de types de données. +

+
+
+
+Portable +
+
+

+GNU/Linux, Apple/MacOS, Microsoft/Windows +

+
+
+Support +
+
+

+~1 développeur à mi-temps +

+ +
+
+Ligne de commande +
+
+
+
+	% hledger balance -f $fichier.hledger
+
+
+
+Interface Web +
+
+
+
+	% hledger-web --server -f $fichier.hledger
+	% firefox "http://localhost:5000"
+
+
+
+Extensible +
+
+
+
+	% ghc hledger-fait-ce-que-je-veux.hs
+	% ./hledger-fait-ce-que-je-veux -f $fichier.hledger
+
+
+
+
+ + +
+

2.2. Les moins

+ +
+
+
+Ligne de commande +
+
+
+
+

+
+
+
+
+
+ +
+ +
+

3. Installer hledger

+ +
+ +
+
Debian/jessie
+
+% sudo apt-get install hledger hledger-web
+
+
+ + +
+

3.1. Via cabal

+ +
+ +
+
Debian/wheezy
+
+% echo 'PATH="$HOME/.cabal/bin:$PATH"' >>~/.profile
+  # NOTE: rajoute dans le chemins des exécutables
+  # les exécutables installés par cabal
+% exit # NOTE: recharge ~/.profile
+
+% sudo apt-get install ghc cabal-install \
+               libncurses5-dev libtinfo-dev zlib1g-dev
+% cabal update
+% cabal install cabal # NOTE: met à jour cabal
+% 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
+
+
+ + +
+

3.1.1. Version de développement

+ +
+
+
+% git clone http://github.com/simonmichael/hledger.git ~/src/hledger
+% cd ~/src/hledger
+% cabal install --reinstall --force-reinstalls \
+                ./hledger-lib ./hledger ./hledger-web
+
+
+ +
+ +
+

4. Écrire en .ledger

+ +
+
+
+

Un .ledger est un fichier de texte brut respectant une syntaxe préçise +qui forme une succession d’écritures comptables, ordonnées librement.

+
+
+
+ + +
+

4.1. Exemple

+ +
+
+
+; Ceci est un exemple de livre comptable « ledger »
+; NOTE: fantaisiste comptablement parlant, mais syntaxiquement correct
+
+2014/01/01 Libellé de l’écriture ; UN_TAG:, Autre_tag:Avec_Valeur
+	Compte:Sous-Compte                         -42 ; flux créditant
+	Autre_Compte:Sous-Compte:Sous-Sous-Compte   42 ; flux débitant
+
+2014/01/01 Deuxième écriture le même jour
+	Vente:Âme  -666 ; (tag de flux) Arnaque:
+	Kapital     666
+
+2014/01/02 Troisième écriture le jour suivant avec ventilation des flux
+	Compte:Crédité:A  -1
+	Compte:Crédité:B  -2
+	Compte:Débité:Z    1
+	Compte:Débité:Y    1
+	Compte:Débité:X:x  1
+
+2014/04/12
+	Compte:Crédité  -1234,56
+	Compte:Débité ;  1234,56 (montant inféré)
+
+2014/02/01 Écriture non ordonnée par date ; Ok, mais déconseillé
+	Compte:Débité    1
+	Compte:Crédité  -1 ; Flux non ordonné par crédit/débit
+	 ; c'est juste moins lisible...
+
+; Répéter ad nauseam
+
+
+ +
+ +
+

4.2. Langage

+ +
+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + +
Syntaxe (grammaire BNF)Structure (signatures fonctionnelles)
+
+livre ::= (écriture | commentaire | "⏎" | "␣")*
+
+ + + + +
+livre +
+
+

+$ + :\>f:\textcolor{#D2691E}{\textbf{fichier}} → + \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack$ +

+
+
+écriture ::= date "␣" "␣"* libellé commentaire "⏎"
+             ("␣" flux "⏎")*
+date ::= (année "/")? mois "/" jour
+libellé ::= (· - (";"|"⏎"))*
+
+ + + + + + + + + + + + + + + + + + + + +
+date +
+
+

+$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + (\textcolor{#083194}{\textbf{ann\acute{e}e}}:\textcolor{#D2691E}{\textbf{ℕ}},~ + \textcolor{#083194}{\textbf{mois}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{12}}\},~ + \textcolor{#083194}{\textbf{jour}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{31}}\})$ +

+
+libellé +
+
+

+$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \textcolor{#D2691E}{\textbf{texte}}$ +

+
+commentaire +
+
+

+$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \textcolor{#D2691E}{\textbf{texte}}$ +

+
+tags +
+
+

+$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack + \ =\ \textbf{tags}~(\textbf{commentaire}~e)$ +

+
+flux +
+
+

+$ + :\>e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} → + \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$ +

+
+
+flux ::= compte "␣␣" "␣"* ("-" crédit | débit) ("␣"|"⏎")* commentaire
+compte ::= nom ( ":" nom )*
+nom ::= (· - (":"|"⏎")) (· - (":"|"⏎"))*
+crédit ::= quantité
+débit  ::= quantité
+
+ + + + + + + + + + + + +
+compte +
+
+

+$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → + \lbrack\textcolor{#D2691E}{\textbf{nom}}\rbrack$ +

+
+montant +
+
+

+$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → \textcolor{#D2691E}{ℚ} = \displaystyle{ + \left\{\begin{array}{ll} -~(\textbf{cr\acute{e}dit}~f) & \mathit{\mbox{si défini}} \\ + (\textbf{d\acute{e}bit}~f) & \mathit{\mbox{sinon}} + \end{array}\right}$ +

+
+tags +
+
+

+$ + :\>f:\textcolor{#D2691E}{\textbf{flux}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack + \ =\ \textbf{tags}~(\textbf{commentaire}~f)$ +

+
+
+commentaire ::= ( ";" (tag ":" valeur? | ·)* )
+     ( ("⏎"|"␣")* ";" (tag ":" valeur? | ·)* )*
+
+ + + + + + + + +
+tags +
+
+

+$ + :\>m:\textcolor{#D2691E}{\textbf{commentaire}} → + \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack$ +

+
+tag +
+
+

+$ + :\>(\textcolor{#083194}{\textbf{tag}}:\textcolor{#D2691E}{\textbf{texte}},% + ~\textcolor{#083194}{\textbf{valeur}}:\textcolor{#D2691E}{\textbf{\mbox{texte}}\>?})$ +

+
+
+
+ + + +
+Note +RTFM @ http://hledger.org/manual/.
+
+
+ +
+ +
+

4.3. Calculs

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+compte_parent +
+
+

+ $:\>c : \textcolor{#D2691E}{\textbf{compte}} → \textcolor{#D2691E}{\textbf{compte}}\>?$
+ $=\>c_{\lbrack0,\cdots,|c|-2\rbrack}\ \mbox{si}\ |c| \ge 2$ +

+
+hiérarchie_de_compte +
+
+

+ $:\>\mathbb c : \textcolor{#D2691E}{\textbf{compte}} → \lbrack\textcolor{#D2691E}{\textbf{compte}}\rbrack$
+ $=\>\lbrack{\ c\ :\ \lbrack{\ c\ |\ c ← (\mathbf{compte\mbox{_}parent}\>{c})}\ \rbrack}\ \rbrack$ +

+
+comptes +
+
+

+ $:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → \{\textcolor{#D2691E}{\textbf{compte}}\}$
+ $\{\ (\textbf{compte}\>f)\ |\ f ← (\textbf{flux}\>e)\ |\ e ← \mathbb E\ \}$ +

+
+balance +
+
+

+ $:\>\mathbb F : \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack → ℚ$
+ $=\>{(\ m\ |\ m ← m + (\textbf{montant}\>f)\ |\ f ← \mathbb F\ |\ m ← 0\ )$
+

+
+solde_de_compte +
+
+

+ $:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → c : \textcolor{#D2691E}{\textbf{compte}} → ℚ$
+ $=\>{\textbf{balance}\>\lbrack{\ f\ |\ f ← (\textbf{flux}\>e),\ c\>≼\>(\textbf{compte}\>f)\ |\ e ← \mathbb E\ }\rbrack$
+

+
+solde +
+
+

+ $:\>\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → + \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$
+ $=\>\displaystyle{\left\lbrack + \begin{array}{l} + (\textcolor{#083194}{\textbf{compte}}=c´, \textcolor{#083194}{\textbf{montant}}=m) \\ + |\ m ← (\mathbf{\mbox{solde_de_compte}}\,\mathbb E\,c´) \\ + |\ c´ ← (\mathbf{hi\acute{e}rarchie\mbox{_}de\mbox{_}compte}\,c) \\ + |\ c ← (\mathbf{comptes}\,\mathbb E) + \end{array}}\right\rbrack$ +

+
+
+ +
+ +
+

4.4. Utiliser un éditeur de texte structuré (vim)

+ +
+
+
+Coloration syntaxique sur mesure +
+
+
    +
  • + +hledger.vim + +
    +
    ~/.vimrc
    +
    +autocmd BufNewFile,BufRead *.hledger,*.ledger setfiletype hledger
    +
    +
  • +
+
+
+Complètement automatique des comptes (<Tab>) +
+
+ +
+
+Alignement automatique des montants +
+
+ +
+
+
+ + +
+

4.4.1. Suivre les modifications à plusieurs et/ou à distance (git)

+ +
+
+
+

TODO

+
+
+
+ +
+ +
+

5. Commandes hledger

+ +
+
+ + +
+

5.1. Calculer des soldes (balance)

+ +
+
+
+% hledger balance -f $fichier.ledger $filtre
+
+
+
Suivi des comptes
+
+% hledger balance -b 2012/02/01 -e 2012/04/30              --monthly -f $fichier.ledger >/tmp/bal.flow
+% hledger balance -b 2012/02/01 -e 2012/04/30 --cumulative --monthly -f $fichier.ledger >/tmp/bal.cumulative
+% hledger balance -b 2012/02/01 -e 2012/04/30 --historical --monthly -f $fichier.ledger >/tmp/bal.historical
+% gvimdiff -o /tmp/bal.{cumulative,historical}
+
+
+
+data/gvimdiff-cumulative-historical.png +
+
+
+ + +
+

5.2. Filtrer des écritures (print)

+ +
+
+
+

TODO

+
+
+
+ + +
+

5.3. Suivre un compte (register)

+ +
+
+
+

TODO

+
+
+
+ + +
+

5.4. Observer des statistiques (stats, activity)

+ +
+
+
+

TODO

+
+
+
+ +
+ +
+

6. Exercice comptable

+ +
+
+ + +
+

6.1. Plan comptable d’une association

+ +
+ +
+
+#include::data/Cyclofficine.Plan_comptable.hledger[]
+
+
+ +
+ +
+

6.2. Comptabiliser en partie double

+ +
+
+
+Solde nul de toute écriture +
+
+
+
+Pour toute écriture +
+
+

+Tout ce qui est débité (+) dans ses comptes
+est forcément crédité (-) dans ses autres comptes. +

+
    +
  • + +$\forall e : \textcolor{#D2691E}{\textbf{\acute{e}criture}}, + \ \textbf{balance}\>(\textbf{flux}\>{e}) = 0$ + +
  • +
+
+
+
+
+Relation de Chasles par écritures d’engagement et de paiement +
+
+
+
+01/01 Écriture d’engagement
+	7.Produit:0.Vente:1.Produit_fini:1.Vélo                  -80
+	5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser   80
+
+01/02 Écriture de paiement
+	5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser  -80
+	5.Finance:1.Etablissement:2.Banque:001.Courant            80
+
+
+ + + +
+Note +pour des espèces, transiter par : 5.Finance:3.Caisse:1.Siège
+
+
+
+
+ +
+ +
+

6.2.1. Soldes nuls souhaitables

+ +
+
    +
  • + +Écritures des recettes + +
      +
    1. + +$\sum{\mbox{ventes}} + \sum{\mbox{dons}} = \sum{\mbox{espèces entrées en caisse}} + \sum{\mbox{Chèques à encaisser}}$
      +(Total des ventes + dons == Total d’espèces entrée en caisse + Chèques à encaisser (5112)) +
      +
    2. +
    3. + +Total chèques à encaisser (5112) == Total remises de chèques à la banque (512) (+/- argent non déposé en banque) + +
    4. +
    5. + +Solde du compte caisse (531) == Total entrées espèces en caisse - Total des sorties (remises d’espèces en banque - sorties d’achats - erreur de caisse) + +
    6. +
    7. + +Solde compte caisse (531) == Total entrées en caisse - Dépôt espèce en banque - Achat en espèce + +
    8. +
    +
  • +
  • + +Écritures de paye + +
    +
    +

    TODO

    +
    +
    +
  • +
+
+ +
+ +
+

6.3. Journaux (filtres)

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Banque +
+
+
+
+hledger print -f $fichier.ledger '^5.Finance:1.Etablissement:2.Banque:'
+
+
+Achats +
+
+
+
+hledger print -f $fichier.ledger '^(2.Immobilisation:1.Corporelle:|6.Charge:(0.Achat|1.Service|2.Autre_service):)'
+
+
+Vente +
+
+
+
+hledger print -f $fichier.ledger '^7.Produit:0.Vente:'
+
+
+Caisse +
+
+
+
+hledger print -f $fichier.ledger '^5.Finance:3.Caisse:'
+
+
+Paye +
+
+
+
+hledger print -f $fichier.ledger '6.Charge:(3.Impôt:(1.|3.):|4.Personnel:)'
+
+
+À NouVeaux +
+
+
+
+hledger print -f $fichier.ledger tag:ANV
+
+
+Opération_Diverses +
+
+
+
+hledger print -f $fichier.ledger tag:OD
+
+
+
+ +
+ +
+

6.4. Clôture / Ouverture (equity)

+ +
+
+
+

hledger-equity calcule une balance de comptes +et en fait deux écritures, respectivement :

+
+
+
+ + + + + + + + +
+de clôture +
+
+

+pour les solder à zéro en fin d’exercice ; +

+
+d’ouverture +
+
+

+pour les réinitialiser à leur solde du précédent exercice. +

+
+
+
+% hledger-equity -f $fichier.ledger $filtre
+
+
+
Solde des compte de gestion
+
+% hledger-equity '^6' '^7' -f Paris.2011.hledger
+2014/07/29
+    6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:1.Atelier      -248,87€
+    6.Charge:1.Service:3.Location:2.Immobilière                             -441,46€
+    6.Charge:2.Autre_service:3.Communication:6.Catalogue,Imprimé             -24,00€
+    6.Charge:2.Autre_service:7.Service_bancaire                              -31,25€
+    6.Charge:5.Gestion:8.Divers:6.Cotisation_(vie_statutaire)                -25,00€
+    7.Produit:0.Vente:6.Prest'action                                         700,00€
+    7.Produit:5.Autre_gestion_courante:6.Cotisation                           20,00€
+    7.Produit:5.Autre_gestion_courante:8.Divers                                6,00€
+    equity:closing balances                                                   44,58€
+
+2014/07/29
+    6.Charge:0.Achat:6.Non_stocké:8.Autre_Matière,Fourniture:1.Atelier       248,87€
+    6.Charge:1.Service:3.Location:2.Immobilière                              441,46€
+    6.Charge:2.Autre_service:3.Communication:6.Catalogue,Imprimé              24,00€
+    6.Charge:2.Autre_service:7.Service_bancaire                               31,25€
+    6.Charge:5.Gestion:8.Divers:6.Cotisation_(vie_statutaire)                 25,00€
+    7.Produit:0.Vente:6.Prest'action                                        -700,00€
+    7.Produit:5.Autre_gestion_courante:6.Cotisation                          -20,00€
+    7.Produit:5.Autre_gestion_courante:8.Divers                               -6,00€
+    equity:opening balances                                                  -44,58€
+
+
+ +
+ +
+

7. Import et export avec hledger

+ +
+ +
+ +
+

7.1. Feuilles de calculs des documents comptables

+ +
+
+ + +
+

7.1.1. Bilan financier

+ +
+
+
+

TODO

+
+
+
+ + +
+

7.1.2. Comptes de résultats

+ +
+
+
+

TODO

+
+
+
+ +
+ +
+

8. hledger-web

+ +
+
+
+

TODO

+
+
+
+ +
+ +
+

9. (bonus) Scripter hledger

+ +
+
+
+

TODO

+
+
+
+ + +
+

9.1. Installer un script hledger

+ +
+
+
+% echo 'PATH="$HOME/src/hledger/extra:$PATH"' >>~/.profile
+% exit # NOTE: recharge ~/.profile
+% ghc ~/src/hledger/extra/hledger-SCRIPT.hs
+
+
+ +
+ +
+

10. Communauté

+ +
+
+ + + + + + + + +
+Chat +
+
+

+irc://irc.freenode.net#ledger +

+
+Liste +
+
+

+<hledger+subscribe@googlegroups.com> +

+
+
+
+
+hledgersplash +
+
+
+ +
+ +
+ + + diff --git a/doc/icons b/doc/icons new file mode 120000 index 0000000..17ecac3 --- /dev/null +++ b/doc/icons @@ -0,0 +1 @@ +/usr/share/asciidoc/icons \ No newline at end of file diff --git a/doc/javascripts/LaTeXMathML.js b/doc/javascripts/LaTeXMathML.js new file mode 120000 index 0000000..3e7a613 --- /dev/null +++ b/doc/javascripts/LaTeXMathML.js @@ -0,0 +1 @@ +../.../lib/tool/asciidoc/javascripts/LaTeXMathML.js \ No newline at end of file diff --git a/doc/javascripts/asciidoc.js b/doc/javascripts/asciidoc.js new file mode 120000 index 0000000..fb0c389 --- /dev/null +++ b/doc/javascripts/asciidoc.js @@ -0,0 +1 @@ +/etc/asciidoc/javascripts/asciidoc.js \ No newline at end of file diff --git a/doc/make b/doc/make new file mode 100644 index 0000000..baa921c --- /dev/null +++ b/doc/make @@ -0,0 +1,27 @@ +#!/bin/sh -efux +tool=$(readlink -e "${0%/*}"/...) + +VERSION=$(which git >/dev/null && + cd "$tool" && + git describe --tags --match 'v[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]' --always || + TZ=UTC date +'v%Y.%m.%d') +VERSION=git://git.autogeree.net/tool/hledger + +if test ! -e "$tool"/lib/tool/asciidoc/.git + then + (cd "$tool" && git submodule update --init --recursive -- lib/tool/asciidoc) + (cd "$tool"/lib/tool/asciidoc/ && git checkout -f HEAD && git clean -dfx) + fi + +MAKE=$(which gmake >/dev/null && echo gmake || echo make) + +cd "${0%/*}" +VERSION=${VERSION#v} \ +ASCIIDOC_FLAGS="${ASCIIDOC_FLAGS:+$ASCIIDOC_FLAGS }-a revnumber=$VERSION -a tabsize=0 -a latexmath" \ +conf=etc \ +SRCDIR=. \ +xsl=docbook-xsl \ +slidy=slidy2 \ +$MAKE ${MAKE_FLAGS-} \ + -f "$tool"/lib/tool/asciidoc/GNUmakefile \ + "$@" diff --git a/doc/slidy2-install b/doc/slidy2-install new file mode 120000 index 0000000..3c7df74 --- /dev/null +++ b/doc/slidy2-install @@ -0,0 +1 @@ +.../lib/tool/asciidoc/backend/slidy2/install \ No newline at end of file diff --git a/lib/tool/asciidoc b/lib/tool/asciidoc new file mode 160000 index 0000000..4e7d282 --- /dev/null +++ b/lib/tool/asciidoc @@ -0,0 +1 @@ +Subproject commit 4e7d282984a4125b912a744b98e2a85b0cb931db