Extensions possibles pour Compta
Liste non exhaustive de projets possibles.
Chaque groupe de 2 ou 3
étudiants doit choisir une ou plusieurs tâches de cette liste.
Un
groupe peut également proposer ses propres tâches qui doivent être
validées par les enseignants.
Facile
- Dans la vue d'un compte, rajouter la somme des débits et la somme des
crédits, ainsi que le solde du compte.
- Permettre la modification de la date d'une transaction et trier les
transactions par la date.
-
Dans la vue d'une transaction, afficher la somme des débits et la
somme des crédits, ainsi que la différence entre les deux.
-
Rajouter la fonctionnalité permettant la suppression d'une entrée dans
une transaction.
-
Rajouter la fonctionnalité permettant la modification d'un montant
d'une entrée dans une transaction.
-
Faire des vérifications avant de valider la création d'une nouvelle
transaction :
- un même compte ne doit pas apparaître 2 fois
- somme des débit = somme des crédits
Moyen
-
Permettre la création d'un ensemble de comptes pouvant
être considéré comme un seul compte.
Un exemple de ce type d'ensemble
serait "fournisseurs" pour regrouper tous les fournisseurs.
Créer les ensembles
- "Coût" (Télécommunication, Électricité, Nourriture, etc),
"Revenu" (Salaire, etc),
- "Actif" (Créances, Comptes bancaires, Stock
de marchandise, etc) et
- "Passif" (Dettes).
-
Rajouter la possibilité de limiter les informations affichées à une
période précise.
La vue d'un compte doit alors afficher à la fois le
solde au début de la période et celui à la fin de la période.
-
Afin d'éviter des "constantes magiques" (comme la taille des diverses
fenêtres) dans le code, mettre ces constantes (ainsi que d'autres
expressions arbitraires Common Lisp) dans un fichier ~/.compta, et
modifier le logiciel pour que ce fichier soit chargé avant l'exécution
du logiciel.
-
À la fin d'une période, créer le rapport "résultat" (la différence
entre revenues et coûts).
-
À la fin d'une période, créer le rapport "bilan" (la différence
entre actif et passif).
-
Automatiser le calcul de la TVA selon les taux en vigueur.
-
Éviter que le logiciel ne plante en informant proprement l'utilisateur
de la cause du problème.
-
Écrire un ensemble de tests unitaires pour garantir le bon
fonctionnement de l'application. S'appuyer pour cela sur un des
frameworks décrits sur : http://www.cliki.net/test%20framework
-
Faire du fichier "io.lisp" un projet Common Lisp à part entière, qui
peut s'installer avec asdf-install depuis Internet. Écrire des tests
unitaires en ce basant sur un des frameworks décrits dans
Frameworks.
Écrire aussi une petite documentation pour accompagner ce projet.
Difficile
-
Alors que certains achats peuvent être considérés comme des coûts
lorsque le payement est effectué, ce n'est pas toujours le cas.
L'achat de mobilier ou d'équipement avec une durée de vie qui dépasse
celle de la période de comptabilité et traité différemment. Lorsque
l'achat est effectué, il y a un transfert entre le compte bancaire, et
un compte représentant l'équipement. Cet transfert ne modifie pas le
résultat de l'opération. Puis chaque année (par exemple), on
considère que l'équipement perd une partie de sa valeur (par exemple
20% chaque année pendant 5 ans). Ces montants sont donc transférés du
compte pour l'équipement à un compte de coût. Ces dernières
transactions influencent le résultat de l'opération et donc aussi
d'autre aspects comme les impôts sur le résultat. Automatiser la
création de ces dernières transactions lorsque le premier transfert
est effectué.
-
Partiellement parce que les comptables n'aiment pas des montants
négatifs, le traitement de la TVA est en réalité un peu complexe. En
réalité on manipule 6 comptes différents :
tva-à-décaisser
Ce compte est débité à chaque fois que l'entreprise verse une
somme de tva aux autorités (c'est le compte bancaire qui est
crédité).
tva-à-encaisser
Ce compte est crédité à chaque fois que l'entreprise reçois un
payement de TVA des autorités.
tva-versée
Ce compte est débité à chaque fois qu'un achat est effectué.
tva-collectée
Ce compte est crédité à chaque fois qu'une vente est effectuée.
tva-crédits
tva-dettes
Ces deux comptes indiquent à la fin de la période combien de TVA
est due à la société ou par la société. Si la société doit de
l'argent, alors c'est tva-dette qui est crédité, et si la
société a payé plus de TVA qu'elle n'a collecté, alors c'est le
compte tva-crédits qui est débité. Le compte tva-crédits est un
compte dans le groupe "créances", et tva-dettes est un compte
dans le groupe "dettes".
À la fin de l'année, on émet assez de transactions pour les
quatre premiers compte ainsi qu'au moins l'un des deux derniers
aient un solde de 0.
Automatiser la génération de ces transactions grâce à une commande
"balance-vat".
-
Permettre la manipulation du logiciel entièrement au clavier
(sélection de comptes, enregistrement de transactions...).
-
Simplifier l'enregistrement de nouvelles transactions en demandant au
préalable à l'utilisateur le type de transaction à créer. En fonction
de la réponse, le choix des comptes à impacter en débit et crédit
pourra être réduit.
-
Ajouter la possibilité d'avoir des graphiques. Par exemple, on veut
pouvoir savoir comment sont réparties les dépenses mensuelles entre
les différents comptes (alimentation, abonnements...). Vous pouvez
pour cela utiliser soit cl-pdf vu au premier TD soit CLIM directement
(voir le Clim II User Guide).
-
Ajouter la planification de transaction automatique : les factures et
les salaires mensuels par exemple.
-
Implémenter la sauvegarde automatique et la création de versions de
sauvegarde. S'inspirer de ce que fait Emacs en lisant les paragraphes
"backup" et "auto-save file" de son manuel. Permettre que cela soit
facilement paramétrable par ajout de code.
-
Permettre l'utilisation d'un calendrier pour rentrer les dates
(prendre "M-x calendar" dans Emacs et la section "Calendar/Diary" du
manuel Emacs comme exemples).