Author: sbavencoff Date: 2014-07-24 14:11:50 +0200 (Thu, 24 Jul 2014) New Revision: 3863 Url: http://forge.chorem.org/projects/lima/repository/revisions/3863 Log: refs #1044 : financial statement service Modified: trunk/lima-business-api/src/main/java/org/chorem/lima/business/api/FinancialStatementService.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java trunk/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartTreeTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartViewHandler.java Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java 2014-07-24 12:04:19 UTC (rev 3862) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java 2014-07-24 12:11:50 UTC (rev 3863) @@ -25,7 +25,6 @@ package org.chorem.lima.business.ejb; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,12 +51,11 @@ import javax.ejb.TransactionAttribute; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.List; import java.util.StringTokenizer; -import static org.nuiton.i18n.I18n.t; - @Stateless @Remote(FinancialStatementService.class) @TransactionAttribute @@ -97,29 +95,21 @@ FinancialStatementTopiaDao financialStatementTopiaDao = getDaoHelper().getFinancialStatementDao(); - // remove financialstatement + // refresh financialstatement FinancialStatement financialStatementToDelete = - financialStatementTopiaDao.findByTopiaId(financialStatement.getTopiaId()); - financialStatementTopiaDao.delete(financialStatementToDelete); + financialStatementTopiaDao.forTopiaIdEquals(financialStatement.getTopiaId()).findUnique(); - //get all subFinancialStatement - List<FinancialStatement> financialStatements = - getAllChildrenFinancialStatement(financialStatement, new ArrayList<FinancialStatement>()); - - //if FinancialStatement have subFinancialStatement - for (FinancialStatement subFinancialStatement : financialStatements) { - FinancialStatement subFinancialStatementToDelete = - financialStatementTopiaDao.findByTopiaId( - subFinancialStatement.getTopiaId()); - financialStatementTopiaDao.delete(subFinancialStatementToDelete); - } + financialStatementTopiaDao.delete(financialStatementToDelete); } @Override public void removeAllFinancialStatement() { - for (FinancialStatement financialStatement : getChildrenFinancialStatement(null)) { - removeFinancialStatement(financialStatement); - } + + FinancialStatementTopiaDao financialStatementDao = getDaoHelper().getFinancialStatementDao(); + + List<FinancialStatement> allRoots = getRootFinancialStatements(); + + financialStatementDao.deleteAll(allRoots); } @Override @@ -131,24 +121,18 @@ } @Override - public List<FinancialStatement> getAllChildrenFinancialStatement(FinancialStatement financialStatement, - List<FinancialStatement> result) { - List<FinancialStatement> childFinancialStatements = - getChildrenFinancialStatement(financialStatement); - for (FinancialStatement childFinancialStatement : childFinancialStatements) { - result.add(childFinancialStatement); - getAllChildrenFinancialStatement(childFinancialStatement, result); - } + public List<FinancialStatement> getRootFinancialStatements() { + FinancialStatementTopiaDao financialStatementTopiaDao = getDaoHelper().getFinancialStatementDao(); + + List<FinancialStatement> result = financialStatementTopiaDao + .forMasterFinancialStatementEquals(null) + .setOrderByArguments(FinancialStatement.PROPERTY_TOPIA_CREATE_DATE) + .findAll(); + return result; } @Override - public List<FinancialStatement> getChildrenFinancialStatement(FinancialStatement masterFinancialStatement) { - return Lists.newArrayList(masterFinancialStatement.getSubFinancialStatements()); - } - - - @Override public void updateFinancialStatement(FinancialStatement financialStatement) { // TopiaDao @@ -187,8 +171,14 @@ Date selectedEndDate, FinancialStatementDatas result) { - List<FinancialStatement> financialStatements = getChildrenFinancialStatement(financialStatement); + Collection<FinancialStatement> financialStatements; + if (financialStatement == null) { + financialStatements = getRootFinancialStatements(); + } else { + financialStatements = financialStatement.getSubFinancialStatements(); + } + BigDecimal grossAmount = new BigDecimal(0), provisionDeprecationAmount = new BigDecimal(0); List<FinancialStatementAmounts> subResult = new ArrayList<FinancialStatementAmounts>(); @@ -398,8 +388,7 @@ } @Override - public String checkFinancialStatementChart() { - StringBuilder result = new StringBuilder(t("lima-business.financialstatement.check.warn")); + public List<Account> checkFinancialStatementChart() { AccountTopiaDao accountTopiaDao = getDaoHelper().getAccountDao(); FinancialStatementTopiaDao financialStatementTopiaDao = getDaoHelper().getFinancialStatementDao(); @@ -419,13 +408,7 @@ accountsList.removeAll(accountService.stringToListAccounts(financialStatement.getProvisionDeprecationAccounts())); } - for (Account account : accountsList) { - - result.append(t("lima-business.financialstatement.check.nothing", - account.getAccountNumber(), account.getLabel())); - } - - return result.toString(); + return accountsList; } @Override Modified: trunk/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties =================================================================== --- trunk/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties 2014-07-24 12:04:19 UTC (rev 3862) +++ trunk/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties 2014-07-24 12:11:50 UTC (rev 3863) @@ -69,8 +69,6 @@ lima-business.document.voucher=Pièce comptable lima-business.document.zipcode=Code postal lima-business.entrybook.entrybookalreadyexist=Un journal existe déjà avec ce code \: %s -lima-business.financialstatement.check.nothing=Introuvable \: %s - %s \n -lima-business.financialstatement.check.warn=Attention cette fonctionnalité n'est qu'une aide utilisateur.\n Certains comptes ne doivent pas être présent au bilan et compte de résultat.\n Il est donc normal que des comptes sont marqués comme introuvable.\n\n lima-business.financialtransaction.retainedearnings.description=Report à nouveau lima-business.financialtransaction.retainedearnings.voucher=Selon décision AG lima-business.fiscalperiod.fiscalperiodalreadyblocked=La période fiscale est déjà bloquée Modified: trunk/lima-business-api/src/main/java/org/chorem/lima/business/api/FinancialStatementService.java =================================================================== --- trunk/lima-business-api/src/main/java/org/chorem/lima/business/api/FinancialStatementService.java 2014-07-24 12:04:19 UTC (rev 3862) +++ trunk/lima-business-api/src/main/java/org/chorem/lima/business/api/FinancialStatementService.java 2014-07-24 12:11:50 UTC (rev 3863) @@ -27,6 +27,7 @@ import org.chorem.lima.beans.FinancialStatementAmounts; import org.chorem.lima.business.LimaException; +import org.chorem.lima.entity.Account; import org.chorem.lima.entity.FinancialStatement; import java.util.Date; @@ -46,15 +47,16 @@ List<FinancialStatement> getAllFinancialStatements(); - List<FinancialStatement> getChildrenFinancialStatement(FinancialStatement financialStatement); + List<FinancialStatement> getRootFinancialStatements(); - List<FinancialStatement> getAllChildrenFinancialStatement(FinancialStatement financialStatement, - List<FinancialStatement> financialStatements); - List<FinancialStatementAmounts> financialStatementReport(Date selectedBeginDate, Date selectedEndDate); - String checkFinancialStatementChart(); + /** + * + * @return la liste de compte non utilisés. + */ + List<Account> checkFinancialStatementChart(); /** * Check if Financial Statement exist according the label given as parameter. Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartTreeTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartTreeTableModel.java 2014-07-24 12:04:19 UTC (rev 3862) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartTreeTableModel.java 2014-07-24 12:11:50 UTC (rev 3863) @@ -25,6 +25,7 @@ package org.chorem.lima.ui.financialstatementchart; +import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.business.api.FinancialStatementService; @@ -99,12 +100,11 @@ int result = 0; if (node == getRoot()) { result = financialStatementService. - getChildrenFinancialStatement(null).size(); + getRootFinancialStatements().size(); } else { FinancialStatement parentFinancialStatementHeader = (FinancialStatement) node; - result = financialStatementService.getChildrenFinancialStatement( - parentFinancialStatementHeader).size(); + result = parentFinancialStatementHeader.getSubFinancialStatements().size(); } return result; } @@ -114,13 +114,15 @@ Object result = null; if (parent == getRoot()) { List<FinancialStatement> financialStatements = - financialStatementService.getChildrenFinancialStatement(null); + financialStatementService.getRootFinancialStatements(); result = financialStatements.get(index); } else { FinancialStatement parentFinancialStatement = (FinancialStatement) parent; - List<FinancialStatement> financialStatements = financialStatementService. - getChildrenFinancialStatement(parentFinancialStatement); + + List<FinancialStatement> financialStatements = + Lists.newArrayList(parentFinancialStatement.getSubFinancialStatements()); + result = financialStatements.get(index); } return result; @@ -132,13 +134,15 @@ if (parent == getRoot()) { List<FinancialStatement> financialStatements = - financialStatementService.getChildrenFinancialStatement(null); + financialStatementService.getRootFinancialStatements(); result = financialStatements.indexOf(child); } else { FinancialStatement parentFinancialStatement = (FinancialStatement) parent; - List<FinancialStatement> financialStatements = financialStatementService. - getChildrenFinancialStatement(parentFinancialStatement); + + List<FinancialStatement> financialStatements = + Lists.newArrayList(parentFinancialStatement.getSubFinancialStatements()); + result = financialStatements.indexOf(child); } return result; Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartViewHandler.java 2014-07-24 12:04:19 UTC (rev 3862) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementchart/FinancialStatementChartViewHandler.java 2014-07-24 12:11:50 UTC (rev 3863) @@ -30,6 +30,7 @@ import org.chorem.lima.business.ServiceListener; import org.chorem.lima.business.api.FinancialStatementService; import org.chorem.lima.business.api.ImportService; +import org.chorem.lima.entity.Account; import org.chorem.lima.entity.FinancialStatement; import org.chorem.lima.entity.FinancialStatementImpl; import org.chorem.lima.enums.FinancialStatementsChartEnum; @@ -40,9 +41,15 @@ import org.jdesktop.swingx.JXTreeTable; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.JTextArea; +import javax.swing.KeyStroke; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; @@ -376,8 +383,17 @@ public void financialStatementChartCheck() { - String result = financialStatementService.checkFinancialStatementChart(); - showReportDialog(result, t("lima.financialstatement.check"), view); + java.util.List<Account> unusedAccounts = financialStatementService.checkFinancialStatementChart(); + + StringBuilder result = new StringBuilder(t("lima.financialStatements.check.warn")); + + for (Account account : unusedAccounts) { + + result.append(t("lima.financialStatements.check.nothing", + account.getAccountNumber(), account.getLabel())); + } + + showReportDialog(result.toString(), t("lima.financialStatements.check"), view); } /**