Bonjour numéro 7, Deux, trois petites remarques sur ton dernier commit : + else { + Identity existIdentity = account.getIdentity(); + // remove account + AccountDAO accountDAO = + LimaCallaoDAOHelper.getAccountDAO(transaction); + accountDAO.delete(account); + //check if account is a subledger with identity + if (existIdentity != null) { + System.out.println(existIdentity.getAddress()); + // delete identity + IdentityDAO identityDAO = + LimaCallaoDAOHelper.getIdentityDAO(transaction); + identityDAO.delete(existIdentity); + } + // commit + transaction.commitTransaction(); Il semble y avoir un problème dans ton modèle. Identity devrait être lié via une composition a Account. Au moment de la suppression de account cela supprimera automatiquement le Identity qui lui est lié. Dans le meme ordre d'idée ce qui suit est inutile : + //Check if the account is a subledger + Identity existIdentity = account.getIdentity(); + if (existIdentity != null) { + // update identity + IdentityDAO identityDAO = + LimaCallaoDAOHelper.getIdentityDAO(transaction); + identityDAO.update(existIdentity); + } l'identity sera automatiquement mis a jour a la sauvegarde de l'Account (pour le vérifier tu pourrais créer un jeu de test avec JUnit) Deuxième chose : + List<FiscalPeriod> listFiscalPeriods = getAllFiscalPeriods(); + ListIterator<FiscalPeriod> itr = listFiscalPeriods.listIterator(); + while(itr.hasNext()){ + FiscalPeriod thisFiscalPeriod = itr.next(); + if (thisFiscalPeriod.getEndDate(). + after(lastFiscalPeriod.getEndDate())){ + lastFiscalPeriod=thisFiscalPeriod; + } + } L'iterateur est inutile ici, il est préférable d'utiliser le foreach de java bien plus simple et lisible : for (FiscalPeriod period : getAllFiscalPeriods()) { if (...) } Les itérateurs sont plutôt utilisés si tu veux faire un add ou remove sur la collection directement dans la boucle. Dernière chose : + int monthNumber = fiscalPeriod.getEndDate().getMonth() + -fiscalPeriod.getBeginDate().getMonth(); + + //check if fiscalperiod have 12 months, ask a confirmation + if(monthNumber!=12){ + //TODO Exception + throw new LimaBusinessException("The fiscal period has not 12 months"); + } Je doute sincèrement que ce code marche. De plus la méthode getMonth() est déprécié et ne devrait pas être utilisé. A moins d'être sûr d'être sur une seule et même année, la soustraction de deux mois ne garantie pas d'avoir le bon nombre réel de mois entre les deux ! (ex : 03/2010, 03/2011 -> beginMonth = 3, endMonth = 3 -> 3 - 3 = 0 au lieu de 12) Tu devrais jeter un oeil sur la librairie nuiton-utils ou autre commons-lang qui te fournissent des méthodes utilitaires sur les dates (DateUtils, PeriodDates, ...) En espérant ne pas t'avoir perdu :P Cordialement, -- Florian Desbois <fdesbois@codelutin.com> SSLL Code Lutin Tel: 02 40 50 29 28 http://www.codelutin.com Membre du Réseau Libre-entreprise