r2679 - in trunk/lima-main/src/main: java/org/chorem/lima/balance java/org/chorem/lima/bilan java/org/chorem/lima/enumeration java/org/chorem/lima/table/model java/org/chorem/lima/ui java/org/chorem/lima/util resources/i18n
Author: rchapelet Date: 2009-08-20 17:22:39 +0200 (Thu, 20 Aug 2009) New Revision: 2679 Modified: trunk/lima-main/src/main/java/org/chorem/lima/balance/Category.java trunk/lima-main/src/main/java/org/chorem/lima/bilan/Bilan.java trunk/lima-main/src/main/java/org/chorem/lima/enumeration/BilanActifEnum.java trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanActifTableModel.java trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanPassifTableModel.java trunk/lima-main/src/main/java/org/chorem/lima/ui/BilanViewImpl.java trunk/lima-main/src/main/java/org/chorem/lima/util/Util.java trunk/lima-main/src/main/resources/i18n/lima-main-en_GB.properties trunk/lima-main/src/main/resources/i18n/lima-main-fr_FR.properties Log: Bilan comptable : J'ai apport?\195?\169 pour l'actif plus de pr?\195?\169cision, avec une colonne brut, amort. et prov. et net. J'ai mis en place ?\195?\169galement la possibilit?\195?\169 de basculer sur un bilan plus complexe. En m?\195?\169moire, le logiciel va le calculer. Reste ?\195?\160 impl?\195?\169menter l affichage. Modified: trunk/lima-main/src/main/java/org/chorem/lima/balance/Category.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/balance/Category.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/balance/Category.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -80,14 +80,18 @@ */ public static boolean accountNumberCategory (String number,String numberAccount) { + // Methode 1 + /** int result = 1; int size = number.length(); if ( size <= numberAccount.length()) { result = number.compareTo(numberAccount.substring(0, size)); } - // Todo => startWith - return result == 0; + */ + // Methode 2 + boolean start = numberAccount.startsWith(number); + return start; } Modified: trunk/lima-main/src/main/java/org/chorem/lima/bilan/Bilan.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/bilan/Bilan.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/bilan/Bilan.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -19,6 +19,7 @@ package org.chorem.lima.bilan; +import org.chorem.lima.balance.Category; import org.chorem.lima.dto.BilanDTO; import org.chorem.lima.dto.BalanceDTO; import org.chorem.lima.util.Util; @@ -34,64 +35,142 @@ public class Bilan extends BilanDTO { private static final Log log = LogFactory.getLog(Bilan.class); - private List<BalanceDTO> listBalance; + private List<Bilan> listBilan; + private String numberAccount; public Bilan () { super(); } - public Bilan (String name, String total, List<BalanceDTO> listBalance) + public Bilan (String name, String total, List<Bilan> listBilan) { - super(name,total); - if ( listBalance == null) + super(name,total,"0"); + numberAccount = ""; + if ( listBilan == null) { - this.listBalance = new LinkedList<BalanceDTO>(); + this.listBilan = new LinkedList<Bilan>(); } else { - this.listBalance = listBalance; + this.listBilan = listBilan; } } + + public Bilan (String name, String total,String depreciation, List<Bilan> listBilan) + { + super(name,total,depreciation); + numberAccount = ""; + if ( listBilan == null) + { + this.listBilan = new LinkedList<Bilan>(); + } else { + this.listBilan = listBilan; + } + } + + public Bilan (String name, String total,String depreciation, String numberAccount, List<Bilan> listBilan) + { + super(name,total,depreciation); + this.numberAccount = numberAccount; + if ( listBilan == null) + { + this.listBilan = new LinkedList<Bilan>(); + } else { + this.listBilan = listBilan; + } + } + /** - * @return the listBalance + * @return the listBilan */ - public List<BalanceDTO> getListBalance() { - return listBalance; + public List<Bilan> getListBilan() { + return listBilan; } /** - * @param listBalance the listBalance to set + * @param listBilan the listBilan to set */ - public void setListBalance(List<BalanceDTO> listBalance) { - this.listBalance = listBalance; + public void setListBilan(List<Bilan> listBilan) { + this.listBilan = listBilan; } + public String getNumberAccount () + { + return this.numberAccount; + } + + public void setNumberAccount(String numberAccount) + { + this.numberAccount = numberAccount; + } + /** - * Ajoute la balance dans le bilan - * @param balance + * Ajoute le bilan secondaire dans le bilan + * @param bilan total (brut) */ - public void add (BalanceDTO balance) + public void add (Bilan bilan) { - if (balance != null) + if (bilan != null) { - listBalance.add(balance); + listBilan.add(bilan); } } /** * - * @param balance + * @param bilan total (brut) * @param total */ + public void add (Bilan bilan, String total) + { + if (bilan != null) + { + this.setTotal(Util.AddNumbersString(this.getTotal(), total)); + add(bilan); + } + } + public void add (BalanceDTO balance, String total) { + Bilan bilan = new Bilan(balance.getName(),total,"0",balance.getAccount().getIdNumber(),null); + add(bilan,total); + } + + public void addDepreciation (BalanceDTO balance, String depreciation) + { if (balance != null) { - this.setTotal(Util.AddNumbersString(this.getTotal(), total)); - listBalance.add(balance); + /** + * Recherche dans la liste du bilan une correspondance + * On enlève le second chiffre, qui correspond à 8. Ce dernier est + * placé dans le numéro de compte amortissement uniquement pour définir + * la parité avec un numéro autre. + * Exemple : Compte 201 à pour parité le compte 2801 comme amortissement. + */ + String newNumberAccount = balance.getAccount().getIdNumber(); + newNumberAccount = newNumberAccount.substring(0,1) + newNumberAccount.substring(2,newNumberAccount.length()); + Bilan bilan = searchBilanWithNumberAccount(newNumberAccount); + if (bilan != null) + { + bilan.setDepreciation(depreciation); + } + this.setDepreciation(Util.AddNumbersString(this.getDepreciation(), depreciation)); } } + public Bilan searchBilanWithNumberAccount (String numberAccount) + { + Bilan bilanSearch = null; + for ( Bilan bilan : listBilan ) + { + if ( Category.accountNumberCategory(numberAccount,bilan.getNumberAccount()) ) + { + bilanSearch = bilan; + return bilanSearch; + } + } + return bilanSearch; + } + - } \ No newline at end of file Modified: trunk/lima-main/src/main/java/org/chorem/lima/enumeration/BilanActifEnum.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/enumeration/BilanActifEnum.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/enumeration/BilanActifEnum.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -31,5 +31,13 @@ /** * */ - TOTAL + BRUT, + /** + * + */ + AMORTISSEMENT, + /** + * + */ + NET } Modified: trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanActifTableModel.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanActifTableModel.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanActifTableModel.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -25,6 +25,7 @@ import org.chorem.lima.bilan.Bilan; import org.chorem.lima.dto.util.DTOHelper; import org.chorem.lima.enumeration.BilanActifEnum; +import org.chorem.lima.util.Util; import javax.swing.table.AbstractTableModel; import java.util.List; @@ -68,7 +69,7 @@ @Override public int getColumnCount() { - return 2; + return 4; } /** @@ -88,8 +89,12 @@ switch (BilanActifEnum.values()[col]) { case ACTIF: return bilan.getName(); - case TOTAL: + case BRUT: return bilan.getTotal(); + case AMORTISSEMENT: + return bilan.getDepreciation(); + case NET: + return Util.SubNumbersString(bilan.getTotal(), bilan.getDepreciation()); } } return res; @@ -100,11 +105,17 @@ String res = DTOHelper.EMPTY_STRING; switch (BilanActifEnum.values()[col]) { case ACTIF: - res = _("lima.account"); + res = _("lima.bilan.actif"); break; - case TOTAL: - res = _("lima.result.charge"); + case BRUT: + res = _("lima.bilan.brut"); break; + case AMORTISSEMENT: + res = _("lima.bilan.depreciation"); + break; + case NET: + res = _("lima.bilan.net"); + break; } return res; } Modified: trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanPassifTableModel.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanPassifTableModel.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/table/model/BilanPassifTableModel.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -100,10 +100,10 @@ String res = DTOHelper.EMPTY_STRING; switch (BilanPassifEnum.values()[col]) { case PASSIF: - res = _("lima.account"); + res = _("lima.bilan.passif"); break; case TOTAL: - res = _("lima.result.charge"); + res = _("lima.bilan.total"); break; } return res; Modified: trunk/lima-main/src/main/java/org/chorem/lima/ui/BilanViewImpl.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/ui/BilanViewImpl.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/ui/BilanViewImpl.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -135,7 +135,15 @@ passifTab.put("PASSIF_DETTES_AUTRES_DETTES", new Bilan("PASSIF_DETTES_AUTRES_DETTES","0",null)); passifTab.put("PASSIF_DETTES_PCA", new Bilan("PASSIF_DETTES_PCA","0",null)); - // Category + /** + * Vérifie chaque numéro de compte (balance) pour déterminer sa position + * dans le bilan. + * Chaque catégorie est un objet bilan, et possède à son tour des bilans + * correspondants aux comptes. + * Cette boucle ne prend pas en compte les amortissement et provisions. + * Ces comptes sont mis dans une liste à part, pour être listés une seconde fois. + */ + Hashtable<String,List<BalanceDTO>> provisionMap = new Hashtable<String,List<BalanceDTO>>(); for ( BalanceDTO balanceDTO : ListbalanceDTO) { /** @@ -196,6 +204,34 @@ { actifTab.get("ACTIF_CIRCULANT_CCA").add(balanceDTO,Util.SubNumbersString(balanceDTO.getDebit(), balanceDTO.getCredit())); } + /** AMORT. & PROV. */ + if ( Category.accountNumberCategory("280", balanceDTO.getAccount().getIdNumber()) ) + { + if ( provisionMap.get("ACTIF_IMMOBILISE_INCORPOREL") == null ) + { + LinkedList<BalanceDTO> listBalance = new LinkedList<BalanceDTO>(); + provisionMap.put("ACTIF_IMMOBILISE_INCORPOREL", listBalance); + } + provisionMap.get("ACTIF_IMMOBILISE_INCORPOREL").add(balanceDTO); + } + if ( Category.accountNumberCategory("281", balanceDTO.getAccount().getIdNumber()) ) + { + if ( provisionMap.get("ACTIF_IMMOBILISE_CORPOREL") == null ) + { + LinkedList<BalanceDTO> listBalance = new LinkedList<BalanceDTO>(); + provisionMap.put("ACTIF_IMMOBILISE_CORPOREL", listBalance); + } + provisionMap.get("ACTIF_IMMOBILISE_CORPOREL").add(balanceDTO); + } + if ( Category.accountNumberCategory("282", balanceDTO.getAccount().getIdNumber()) ) + { + if ( provisionMap.get("ACTIF_IMMOBILISE_FINANCIER") == null ) + { + LinkedList<BalanceDTO> listBalance = new LinkedList<BalanceDTO>(); + provisionMap.put("ACTIF_IMMOBILISE_FINANCIER", listBalance); + } + provisionMap.get("ACTIF_IMMOBILISE_FINANCIER").add(balanceDTO); + } /** * PASSIF */ @@ -265,16 +301,46 @@ { passifTab.get("PASSIF_DETTES_PCA").add(balanceDTO,Util.SubNumbersString(balanceDTO.getCredit(), balanceDTO.getDebit())); } + } + /** + * Mise en place des provisions et amortissements + */ + if ( provisionMap.get("ACTIF_IMMOBILISE_INCORPOREL") != null ) + { + List<BalanceDTO> listBalance = provisionMap.get("ACTIF_IMMOBILISE_INCORPOREL"); + for ( BalanceDTO balanceDTO : listBalance ) + { + actifTab.get("ACTIF_IMMOBILISE_INCORPOREL").addDepreciation(balanceDTO,Util.SubNumbersString(balanceDTO.getDebit(), balanceDTO.getCredit())); + } } + if ( provisionMap.get("ACTIF_IMMOBILISE_CORPOREL") != null ) + { + List<BalanceDTO> listBalance = provisionMap.get("ACTIF_IMMOBILISE_CORPOREL"); + for ( BalanceDTO balanceDTO : listBalance ) + { + actifTab.get("ACTIF_IMMOBILISE_CORPOREL").addDepreciation(balanceDTO,Util.SubNumbersString(balanceDTO.getDebit(), balanceDTO.getCredit())); + } + } + if ( provisionMap.get("ACTIF_IMMOBILISE_FINANCIER") != null ) + { + List<BalanceDTO> listBalance = provisionMap.get("ACTIF_IMMOBILISE_FINANCIER"); + for ( BalanceDTO balanceDTO : listBalance ) + { + actifTab.get("ACTIF_IMMOBILISE_FINANCIER").addDepreciation(balanceDTO,Util.SubNumbersString(balanceDTO.getDebit(), balanceDTO.getCredit())); + } + } + + + /** ACTIF */ List<Bilan> listActif = new LinkedList<Bilan>(); - listActif.add(new Bilan("ACTIF IMMOBILISE","0",null)); + listActif.add(new Bilan("ACTIF IMMOBILISE","",null)); listActif.add(actifTab.get("ACTIF_IMMOBILISE_INCORPOREL")); listActif.add(actifTab.get("ACTIF_IMMOBILISE_CORPOREL")); listActif.add(actifTab.get("ACTIF_IMMOBILISE_FINANCIER")); - listActif.add(new Bilan("ACTIF CIRCULANT","0",null)); + listActif.add(new Bilan("ACTIF CIRCULANT","",null)); listActif.add(actifTab.get("ACTIF_CIRCULANT_STOCK")); listActif.add(actifTab.get("ACTIF_CIRCULANT_AVANCES")); listActif.add(actifTab.get("ACTIF_CIRCULANT_CREANCES")); @@ -288,16 +354,16 @@ /** PASSIF */ List<Bilan> listPassif = new LinkedList<Bilan>(); - listPassif.add(new Bilan("CAPITAUX PROPRES","0",null)); + listPassif.add(new Bilan("CAPITAUX PROPRES","",null)); listPassif.add(passifTab.get("PASSIF_CP_CAPITAL")); listPassif.add(passifTab.get("PASSIF_CP_RESERVES")); listPassif.add(passifTab.get("PASSIF_CP_RAN")); listPassif.add(passifTab.get("PASSIF_CP_SUBVENTION")); listPassif.add(passifTab.get("PASSIF_CP_RESERVES")); listPassif.add(passifTab.get("PASSIF_CP_PROVISION")); - listPassif.add(new Bilan("PROVISIONS","0",null)); + listPassif.add(new Bilan("PROVISIONS","",null)); listPassif.add(passifTab.get("PASSIF_PROVISIONS")); - listPassif.add(new Bilan("DETTES","0",null)); + listPassif.add(new Bilan("DETTES","",null)); listPassif.add(passifTab.get("PASSIF_DETTES_EMPRUNTS")); listPassif.add(passifTab.get("PASSIF_DETTES_AVANCES")); listPassif.add(passifTab.get("PASSIF_DETTES_FOURNISSEURS")); Modified: trunk/lima-main/src/main/java/org/chorem/lima/util/Util.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/util/Util.java 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/java/org/chorem/lima/util/Util.java 2009-08-20 15:22:39 UTC (rev 2679) @@ -58,6 +58,13 @@ return d; } + /** + * Permet de transformer une date au format Date au format String + * Il est précisé dans cette méthode le format de date attendue. + * @param d + * @param sFormat + * @return + */ public static String DateToString(Date d, String sFormat) { String result = ""; try { @@ -166,8 +173,6 @@ f.dispose(); } - - /** * Permet de découper une date dans un tableau. * Indices : @@ -229,19 +234,42 @@ return result; } + /** + * Permet d'additionner deux nombres au format String + * @param a + * @param b + * @return + */ public static String AddNumbersString (String a,String b) { - float A = Float.parseFloat(a.replace(',','.')); - float B = Float.parseFloat(b.replace(',','.')); - String result = DTOHelper.format(Float.toString(A+B)); + String result = ""; + // Il faut que a et b ne soient pas vide + if ( !a.isEmpty() && !b.isEmpty()) + { + float A = Float.parseFloat(a.replace(',','.')); + float B = Float.parseFloat(b.replace(',','.')); + result = DTOHelper.format(Float.toString(A+B)); + } return result; } + /** + * Permet de faire la soustraction de deux nombres au format String. + * Il effecte a-b (et non b-a) + * @param a + * @param b + * @return + */ public static String SubNumbersString (String a,String b) { - float A = Float.parseFloat(a.replace(',','.')); - float B = Float.parseFloat(b.replace(',','.')); - String result = DTOHelper.format(Float.toString(A-B)); + String result = ""; + // Il faut que a et b ne soient pas vide + if ( !a.isEmpty() && !b.isEmpty()) + { + float A = Float.parseFloat(a.replace(',','.')); + float B = Float.parseFloat(b.replace(',','.')); + result = DTOHelper.format(Float.toString(A-B)); + } return result; } Modified: trunk/lima-main/src/main/resources/i18n/lima-main-en_GB.properties =================================================================== --- trunk/lima-main/src/main/resources/i18n/lima-main-en_GB.properties 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/resources/i18n/lima-main-en_GB.properties 2009-08-20 15:22:39 UTC (rev 2679) @@ -29,6 +29,12 @@ lima.balance.solde.debit=Balance debit lima.balance.total=Total lima.bilan=Bilan +lima.bilan.actif=Actif +lima.bilan.brut=Brut +lima.bilan.depreciation=Depreciation +lima.bilan.net=Net +lima.bilan.passif=Passif +lima.bilan.total=Total lima.block=block lima.cancel=Cancel lima.charge=Expense Modified: trunk/lima-main/src/main/resources/i18n/lima-main-fr_FR.properties =================================================================== --- trunk/lima-main/src/main/resources/i18n/lima-main-fr_FR.properties 2009-08-19 15:38:35 UTC (rev 2678) +++ trunk/lima-main/src/main/resources/i18n/lima-main-fr_FR.properties 2009-08-20 15:22:39 UTC (rev 2679) @@ -30,6 +30,12 @@ lima.balance.solde.debit=Solde d\u00E9bit lima.balance.total=Total lima.bilan=Bilan +lima.bilan.actif=Actif +lima.bilan.brut=Brut +lima.bilan.depreciation=Amort. et Prov. +lima.bilan.net=Net +lima.bilan.passif=Passif +lima.bilan.total=Total lima.block=Bloquer lima.cancel=Annuler lima.charge=Charge
participants (1)
-
rchapelet@users.chorem.org