Author: vsalaun Date: 2011-05-25 14:19:36 +0200 (Wed, 25 May 2011) New Revision: 3144 Url: http://chorem.org/repositories/revision/lima/3144 Log: #356 ne pas autoriser la cloture d'un exercice s'il possede au moins une ecriture non conforme Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java 2011-05-25 08:31:44 UTC (rev 3143) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java 2011-05-25 12:19:36 UTC (rev 3144) @@ -28,15 +28,22 @@ import static org.nuiton.i18n.I18n._; import java.text.SimpleDateFormat; import java.util.List; + + +import javax.swing.JFrame; +import javax.swing.JOptionPane; import javax.swing.table.AbstractTableModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.lima.business.FinancialTransactionServiceMonitorable; import org.chorem.lima.business.FiscalPeriodServiceMonitorable; import org.chorem.lima.business.ImportServiceMonitorable; import org.chorem.lima.business.LimaException; import org.chorem.lima.business.ServiceListener; +import org.chorem.lima.entity.FinancialTransaction; import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.service.LimaServiceFactory; +import org.nuiton.util.Resource; /** * TODO add comment here. @@ -55,6 +62,8 @@ private static final Log log = LogFactory.getLog(FiscalPeriodTableModel.class); protected FiscalPeriodServiceMonitorable fiscalPeriodService; + + protected FinancialTransactionServiceMonitorable financialTransactionService; public FiscalPeriodTableModel() { fiscalPeriodService = @@ -63,6 +72,10 @@ fiscalPeriodService.addListener(this); LimaServiceFactory.getInstance().getService( ImportServiceMonitorable.class).addListener(this); + financialTransactionService = + LimaServiceFactory.getInstance().getService( + FinancialTransactionServiceMonitorable.class); + financialTransactionService.addListener(this); } @Override @@ -189,9 +202,21 @@ } public void blockFiscalPeriod(FiscalPeriod fiscalPeriod) throws LimaException { - - fiscalPeriodService.blockFiscalPeriod(fiscalPeriod); - fireTableDataChanged(); + List<FinancialTransaction> financialTransactionsUnbal = + financialTransactionService.getAllInexactFinancialTransactions(fiscalPeriod); + if (financialTransactionsUnbal.size() > 0) { + JFrame f = new JFrame(); + f.setIconImage(Resource.getIcon("icons/lima.png").getImage()); + JOptionPane.showMessageDialog( + f, + "Fiscal Period has unbalanced transactions", + _("lima.common.error"), + JOptionPane.ERROR_MESSAGE); + f.dispose(); + } else { + fiscalPeriodService.blockFiscalPeriod(fiscalPeriod); + fireTableDataChanged(); + } } @Override