Logiciel comptable (accountant) (compte, balance)

Soyez le premier à donner votre avis sur cette source.

Vue 11 762 fois - Téléchargée 2 981 fois

Description

Ebauche de logiciel comptable avec utilisation de Swing (JFrame, JTabbedPaned, JTable, Java2DGraphics...) avec lecture/écriture de fichers/dossiers avec DataInput/OuputStream... . La finalisation est en cours, je suis ouvert à toutes propositions de programmation.Un fichier .jar executable est joint au fichier .zip. Il est déjà possible de créer des comptes de les enregistrer, puis de les ouvrir ainsi que la balance. J'attends les critiques et suggestions.

Source / Exemple :


EXTRAIT!!

/*

  • Compte.java
*
  • Created on 24 mars 2010, 23:14
*
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
  • /
package Comptability; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; /** *
  • @author Kidator
  • /
public class Compte { class Enregistrement { private final Calendar date; private final String libelle; private final double debit, credit; public Enregistrement(final Calendar date, final String libelle, final double debit, final double credit){ this.date = date; this.libelle = libelle; this.debit = debit; this.credit = credit; } public Calendar getDate() { return date; } public String getLibelle() { return libelle; } public double getDebit() { return debit; } public double getCredit() { return credit; } } private String nomEntreprise, nomCompte, secondNomCompte, numeroCompte; private Enregistrement[] enregistrements = new Enregistrement[0]; private double solde = 0, totalDebit = 0, totalCredit = 0; /**
  • boolean operation is a variable which when it's false means débit otherwise means crédit
  • /
public void addEnregistrement(Calendar date, String libelle, double debit, double credit){ Enregistrement[] e = new Enregistrement[getEnregistrements().length + 1]; for(int i = 0; i < getEnregistrements().length;i++){ e[i] = getEnregistrements()[i]; } e[getEnregistrements().length] = new Enregistrement(date, libelle, debit, credit); enregistrements = e; totalDebit += e[e.length - 1].getDebit(); totalCredit += e[e.length - 1].getCredit(); solde = totalDebit - totalCredit; } public void addEnregistrement(Enregistrement nouveauEnregistrement){ Enregistrement[] e = new Enregistrement[getEnregistrements().length + 1]; for(int i = 0; i < getEnregistrements().length;i++){ e[i] = getEnregistrements()[i]; } e[getEnregistrements().length] = nouveauEnregistrement; enregistrements = e; totalDebit += e[e.length - 1].getDebit(); totalCredit += e[e.length - 1].getCredit(); solde = totalDebit - totalCredit; } /** Creates a new instance of Compte */ public Compte(File f) { open(f); } public Compte(final String numeroCompte, final String nomEntreprise, final String secondNomCompte) { this.numeroCompte = numeroCompte; this.nomEntreprise = nomEntreprise; this.secondNomCompte = secondNomCompte; this.nomCompte = PlanComptable.getNomCompte(numeroCompte); } public Calendar jjmmaaaaStringToDate(String s){ Calendar d = Calendar.getInstance(); d.set(Integer.parseInt(s.substring(6)), Integer.parseInt(s.substring(3,5)), Integer.parseInt(s.substring(0,2))); return d; } public String getNumeroCompte() { return numeroCompte; } public String getNomEntreprise() { return nomEntreprise; } public String getNomCompte() { return nomCompte; } public Enregistrement[] getEnregistrements() { return enregistrements; } public double getSolde() { return solde; } public double getTotalDebit() { return totalDebit; } public double getTotalCredit() { return totalCredit; } public String dateToStringJJMMAAAA(Calendar c){ return ((c.get(c.DAY_OF_MONTH) < 10)?"0" + c.get(c.DAY_OF_MONTH):c.get(c.DAY_OF_MONTH)) + "/" + ((c.get(c.MONTH) < 10)?"0" + c.get(c.MONTH):c.get(c.MONTH)) + "/" + c.get(c.YEAR); } public Object[][] getArray() { Object[][] o = new Object[enregistrements.length][5]; for(int i=0;i<o.length;i++){ o[i][0] = dateToStringJJMMAAAA(enregistrements[i].getDate()); o[i][1] = enregistrements[i].getLibelle(); o[i][2] = enregistrements[i].getDebit(); o[i][3] = enregistrements[i].getCredit(); if(i != 0){ o[i][4] = ((Number)o[i-1][4]).doubleValue() - ((Number)o[i][3]).doubleValue() + ((Number)o[i][2]).doubleValue(); } else { o[i][4] = ((Number)o[i][2]).doubleValue() - ((Number)o[i][3]).doubleValue(); } } return o; } public void save(){ File save; DataOutputStream dataOutputStream = null; save = new File("Data" + File.separator + getNomEntreprise() + File.separator + "Compte"+ File.separator + "Compte " + getNumeroCompte() + " " + getNomCompte() + " - " + secondNomCompte +".nac"); if(save.exists()){ save.delete(); } try { save.getParentFile().mkdirs(); dataOutputStream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(save))); dataOutputStream.writeLong(enregistrements.length); dataOutputStream.writeChars(numeroCompte); for(int j = 0;j<(10 - numeroCompte.length());j++) dataOutputStream.writeChar('^'); dataOutputStream.writeChars(nomEntreprise); for(int j = 0;j<(96 - nomEntreprise.length());j++) dataOutputStream.writeChar('^'); dataOutputStream.writeChars(secondNomCompte); for(int j = 0;j<(96 - secondNomCompte.length());j++) dataOutputStream.writeChar('^'); dataOutputStream.writeChars(nomCompte); for(int j = 0;j<(96 - nomCompte.length());j++) dataOutputStream.writeChar('^'); for(int i = 0;i < enregistrements.length;i++){ dataOutputStream.writeChars(dateToStringJJMMAAAA(enregistrements[i].getDate())); dataOutputStream.writeChars(enregistrements[i].getLibelle()); for(int j = 0;j<(96 - enregistrements[i].getLibelle().length());j++) dataOutputStream.writeChar('^'); dataOutputStream.writeDouble(enregistrements[i].getDebit()); dataOutputStream.writeDouble(enregistrements[i].getCredit()); } } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { try { if(dataOutputStream != null) { dataOutputStream.flush(); dataOutputStream.close(); } } catch (IOException ex) { ex.printStackTrace(); } dataOutputStream = null; } } public void open(File open){ DataInputStream dataInputStream = null; try { dataInputStream = new DataInputStream(new BufferedInputStream(new FileInputStream(open))); long l = dataInputStream.readLong(); String s = ""; char c; for(int j = 0;j<10;j++){ if ((c = dataInputStream.readChar()) != '^') s += String.valueOf(c); } numeroCompte = s; s = ""; for(int j = 0;j<96;j++){ if ((c = dataInputStream.readChar()) != '^') s += String.valueOf(c); } nomEntreprise = s; s = ""; for(int j = 0;j<96;j++){ if ((c = dataInputStream.readChar()) != '^') s += String.valueOf(c); } secondNomCompte = s; s = ""; for(int j = 0;j<96;j++){ if ((c = dataInputStream.readChar()) != '^') s += String.valueOf(c); } nomCompte = s; String date, libelle; double debit, credit; for(long i = 0;i < l;i++){ date = ""; libelle = ""; for(int j = 0;j<10;j++){ if ((c = dataInputStream.readChar()) != '^') date += String.valueOf(c); } for(int j = 0;j<96;j++){ if ((c = dataInputStream.readChar()) != '^') libelle += String.valueOf(c); } addEnregistrement(jjmmaaaaStringToDate(date), libelle, dataInputStream.readDouble(), dataInputStream.readDouble()); } } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { try { if(dataInputStream != null) { dataInputStream.close(); dataInputStream = null; } } catch (IOException ex) { ex.printStackTrace(); } } } }

Conclusion :


Je travaille le bilan, le compte de résultat et l'impression (et quelques améliorations).Merci d'avance pour tout commentaire!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
bonjour KITODOR je suis debutante et jai besion de aide je veu realiser ce gerne de logiciel mais en php pouvez vous maider svt
slu peut ton avoir la mise jour de ton logiciel plus precisement elaboration du bilan, de compte de resultat ,merci d'avance
Messages postés
2
Date d'inscription
mercredi 28 juillet 2010
Statut
Membre
Dernière intervention
26 avril 2011

Et comment on fait pour changer la monnaie utilisé?
Messages postés
16
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
31 août 2010

J'ai fais une mise à jour qu'en pensez-vous ?
Messages postés
16
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
31 août 2010

Bonjour,
merci pour ces commentaires je commenterai bientôt mon code lors d'une modification d'ici environ un mois. Je débute pour moi c'est un loisir.
A très bientôt.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.