Author: vsalaun Date: 2011-06-30 11:47:13 +0200 (Thu, 30 Jun 2011) New Revision: 3191 Url: http://chorem.org/repositories/revision/lima/3191 Log: block document creation when the fiscal year isn't blocked Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/entrybooksreports/EntryBooksReportsViewHandler.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportViewHandler.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/ledger/LedgerViewHandler.java Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/entrybooksreports/EntryBooksReportsViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/entrybooksreports/EntryBooksReportsViewHandler.java 2011-06-29 16:01:29 UTC (rev 3190) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/entrybooksreports/EntryBooksReportsViewHandler.java 2011-06-30 09:47:13 UTC (rev 3191) @@ -32,13 +32,19 @@ import java.net.URI; import java.net.URISyntaxException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.List; + +import javax.swing.JOptionPane; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.LimaConfig; import org.chorem.lima.beans.ReportsDatas; import org.chorem.lima.business.DocumentServiceMonitorable; import org.chorem.lima.business.FinancialTransactionServiceMonitorable; +import org.chorem.lima.business.FiscalPeriodServiceMonitorable; import org.chorem.lima.business.HttpServerServiceMonitorable; import org.chorem.lima.business.ImportServiceMonitorable; import org.chorem.lima.business.LimaException; @@ -47,6 +53,7 @@ import org.chorem.lima.business.utils.DocumentsEnum; import org.chorem.lima.business.utils.FormatsEnum; import org.chorem.lima.entity.EntryBook; +import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.service.LimaServiceFactory; import org.chorem.lima.util.ErrorHelper; @@ -69,6 +76,7 @@ /** Services. */ protected ReportServiceMonitorable reportService; protected DocumentServiceMonitorable documentService; + protected FiscalPeriodServiceMonitorable fiscalPeriodService; /** Account. */ protected EntryBook selectedEntryBook; @@ -95,6 +103,9 @@ documentService = LimaServiceFactory.getInstance().getService( DocumentServiceMonitorable.class); + fiscalPeriodService = + LimaServiceFactory.getInstance().getService( + FiscalPeriodServiceMonitorable.class); LimaServiceFactory.getInstance().getService( ImportServiceMonitorable.class).addListener(this); LimaServiceFactory.getInstance().getService( @@ -178,28 +189,61 @@ public void createDocument() { if (selectedBeginDate != null && selectedEndDate != null){ - FormatsEnum selectedEnum = (FormatsEnum) view.getDocumentEditor().getSelectedItem(); - String address = LimaConfig.getInstance().getHostAdress(); + //looks for all blocked fiscal periods + List<FiscalPeriod> blockedFiscalPeriods = new ArrayList<FiscalPeriod>(); try { - String url = "http://"+address+":"+port+"/?beginDate=" - +dateFormat.format(selectedBeginDate) - +"&endDate="+dateFormat.format(selectedEndDate) - +"&format="+selectedEnum.getExtension()+"&model=" - + DocumentsEnum.ENTRYBOOKS.getFileName(); - Desktop.getDesktop().browse(new URI(url)); + blockedFiscalPeriods = fiscalPeriodService.getAllBlockedFiscalPeriods(); + } catch (LimaException eee) { + if (log.isErrorEnabled()) { + log.debug("Enable to create document ", eee); + } + ErrorHelper.showErrorDialog("Enable to create document ", eee); + } + + //tells if the fiscaPeriod as been found and is blocked + boolean error = true; + + for (FiscalPeriod blockedFiscalPeriod : blockedFiscalPeriods) { + if (blockedFiscalPeriod.getBeginDate().equals(selectedBeginDate) + && blockedFiscalPeriod.getEndDate().equals(selectedEndDate) + && blockedFiscalPeriod.getLocked()) { + error = false; + } + } + + //shows error message to user if the fiscalPeriod is unblocked + if (error) { + JOptionPane.showMessageDialog( + view, + "Can't create document on an open fiscal year", + _("lima.common.error"), + JOptionPane.ERROR_MESSAGE); + } else { + + FormatsEnum selectedEnum = (FormatsEnum) view.getDocumentEditor().getSelectedItem(); + String address = LimaConfig.getInstance().getHostAdress(); - String url2 = "http://"+address+":"+port+"/?beginDate=" - +dateFormat.format(selectedBeginDate) - +"&endDate="+dateFormat.format(selectedEndDate) - +"&format="+selectedEnum.getExtension()+"&model=" - + DocumentsEnum.GENERAL_ENTRYBOOK.getFileName(); - Desktop.getDesktop().browse(new URI(url2)); + try { + String url = "http://"+address+":"+port+"/?beginDate=" + + dateFormat.format(selectedBeginDate) + + "&endDate="+dateFormat.format(selectedEndDate) + + "&format="+selectedEnum.getExtension()+"&model=" + + DocumentsEnum.ENTRYBOOKS.getFileName(); + Desktop.getDesktop().browse(new URI(url)); + + String url2 = "http://"+address+":"+port+"/?beginDate=" + + dateFormat.format(selectedBeginDate) + + "&endDate="+dateFormat.format(selectedEndDate) + + "&format="+selectedEnum.getExtension()+"&model=" + + DocumentsEnum.GENERAL_ENTRYBOOK.getFileName(); + Desktop.getDesktop().browse(new URI(url2)); - } catch (IOException e) { - log.error("Can't open browser", e); - } catch (URISyntaxException e) { - log.error("Can't create news URI", e); + } catch (IOException e) { + log.error("Can't open browser", e); + } catch (URISyntaxException e) { + log.error("Can't create news URI", e); + } } } } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportTableModel.java 2011-06-29 16:01:29 UTC (rev 3190) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportTableModel.java 2011-06-30 09:47:13 UTC (rev 3191) @@ -232,11 +232,19 @@ // Just read, no write return false; } + + public Date getBeginDate() { + return selectedBeginDate; + } public void setBeginDate(Date date){ selectedBeginDate = date; } + public Date getEndDate() { + return selectedEndDate; + } + public void setEndDate(Date date){ selectedEndDate = date; } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportViewHandler.java 2011-06-29 16:01:29 UTC (rev 3190) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialstatementreport/FinancialStatementReportViewHandler.java 2011-06-30 09:47:13 UTC (rev 3191) @@ -25,7 +25,22 @@ package org.chorem.lima.ui.financialstatementreport; +import static org.nuiton.i18n.I18n._; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.swing.JOptionPane; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.lima.business.FiscalPeriodServiceMonitorable; +import org.chorem.lima.business.LimaException; import org.chorem.lima.business.utils.FormatsEnum; +import org.chorem.lima.entity.FiscalPeriod; +import org.chorem.lima.service.LimaServiceFactory; +import org.chorem.lima.util.ErrorHelper; /** * Handler associated with accounts reports view. @@ -37,13 +52,21 @@ * By : $Author$ */ public class FinancialStatementReportViewHandler { + + /** log. */ + private static final Log log = LogFactory.getLog(FinancialStatementReportViewHandler.class); protected FinancialStatementReportView view; protected FinancialStatementReportTableModel model; + + protected FiscalPeriodServiceMonitorable fiscalPeriodService; protected FinancialStatementReportViewHandler(FinancialStatementReportView view) { this.view = view; + fiscalPeriodService = + LimaServiceFactory.getInstance().getService( + FiscalPeriodServiceMonitorable.class); } public void refresh(){ @@ -58,8 +81,44 @@ public void createDocument() { model = view.getModelTable(); - FormatsEnum selectedEnum = (FormatsEnum) view.getDocumentEditor().getSelectedItem(); - model.createDocument(selectedEnum); - + Date selectedBeginDate = model.getBeginDate(); + Date selectedEndDate = model.getEndDate(); + + if ((selectedBeginDate != null) && (selectedEndDate != null)) { + //looks for all blocked fiscal periods + List<FiscalPeriod> blockedFiscalPeriods = new ArrayList<FiscalPeriod>(); + try { + blockedFiscalPeriods = fiscalPeriodService.getAllBlockedFiscalPeriods(); + } catch (LimaException eee) { + if (log.isErrorEnabled()) { + log.debug("Enable to create document ", eee); + } + ErrorHelper.showErrorDialog("Enable to create document ", eee); + } + + //tells if the fiscaPeriod as been found and is blocked + boolean error = true; + + for (FiscalPeriod blockedFiscalPeriod : blockedFiscalPeriods) { + if (blockedFiscalPeriod.getBeginDate().equals(selectedBeginDate) + && blockedFiscalPeriod.getEndDate().equals(selectedEndDate) + && blockedFiscalPeriod.getLocked()) { + error = false; + } + } + + //shows error message to user if the fiscalPeriod is unblocked + if (error) { + JOptionPane.showMessageDialog( + view, + "Can't create document on an open fiscal year", + _("lima.common.error"), + JOptionPane.ERROR_MESSAGE); + } else { + FormatsEnum selectedEnum = + (FormatsEnum) view.getDocumentEditor().getSelectedItem(); + model.createDocument(selectedEnum); + } + } } } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/ledger/LedgerViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/ledger/LedgerViewHandler.java 2011-06-29 16:01:29 UTC (rev 3190) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/ledger/LedgerViewHandler.java 2011-06-30 09:47:13 UTC (rev 3191) @@ -36,6 +36,9 @@ import java.util.Collections; import java.util.Date; import java.util.List; + +import javax.swing.JOptionPane; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.LimaConfig; @@ -43,6 +46,7 @@ import org.chorem.lima.beans.ReportsDatas; import org.chorem.lima.business.DocumentServiceMonitorable; import org.chorem.lima.business.FinancialTransactionServiceMonitorable; +import org.chorem.lima.business.FiscalPeriodServiceMonitorable; import org.chorem.lima.business.HttpServerServiceMonitorable; import org.chorem.lima.business.ImportServiceMonitorable; import org.chorem.lima.business.LimaException; @@ -52,6 +56,7 @@ import org.chorem.lima.business.utils.EntryComparator; import org.chorem.lima.business.utils.FormatsEnum; import org.chorem.lima.entity.Entry; +import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.service.LimaServiceFactory; import org.chorem.lima.util.ErrorHelper; @@ -72,6 +77,7 @@ /** Services. */ protected ReportServiceMonitorable reportService; protected DocumentServiceMonitorable documentService; + protected FiscalPeriodServiceMonitorable fiscalPeriodService; /** Begin Date. */ protected Date selectedBeginDate; @@ -103,6 +109,9 @@ documentService = LimaServiceFactory.getInstance().getService( DocumentServiceMonitorable.class); + fiscalPeriodService = + LimaServiceFactory.getInstance().getService( + FiscalPeriodServiceMonitorable.class); LimaServiceFactory.getInstance().getService( ImportServiceMonitorable.class).addListener(this); LimaServiceFactory.getInstance().getService( @@ -191,21 +200,54 @@ public void createDocument() { if (selectedBeginDate != null && selectedEndDate != null){ - FormatsEnum selectedEnum = (FormatsEnum) view.getDocumentEditor().getSelectedItem(); - String address = LimaConfig.getInstance().getHostAdress(); + //looks for all blocked fiscal periods + List<FiscalPeriod> blockedFiscalPeriods = new ArrayList<FiscalPeriod>(); try { - String url = "http://"+address+":"+port+"/?beginDate=" - +dateFormat.format(selectedBeginDate) - +"&endDate="+dateFormat.format(selectedEndDate) - +"&format="+selectedEnum.getExtension()+"&model=" - + DocumentsEnum.LEDGER.getFileName(); - Desktop.getDesktop().browse(new URI(url)); - } catch (IOException e) { - log.error("Can't open browser", e); - } catch (URISyntaxException e) { - log.error("Can't create news URI", e); + blockedFiscalPeriods = fiscalPeriodService.getAllBlockedFiscalPeriods(); + } catch (LimaException eee) { + if (log.isErrorEnabled()) { + log.debug("Enable to create document ", eee); + } + ErrorHelper.showErrorDialog("Enable to create document ", eee); } + + //tells if the fiscaPeriod as been found and is blocked + boolean error = true; + + for (FiscalPeriod blockedFiscalPeriod : blockedFiscalPeriods) { + if (blockedFiscalPeriod.getBeginDate().equals(selectedBeginDate) + && blockedFiscalPeriod.getEndDate().equals(selectedEndDate) + && blockedFiscalPeriod.getLocked()) { + error = false; + } + } + + //shows error message to user if the fiscalPeriod is unblocked + if (error) { + JOptionPane.showMessageDialog( + view, + "Can't create document on an open fiscal year", + _("lima.common.error"), + JOptionPane.ERROR_MESSAGE); + } else { + + FormatsEnum selectedEnum = (FormatsEnum) view.getDocumentEditor().getSelectedItem(); + String address = LimaConfig.getInstance().getHostAdress(); + + try { + String url = "http://"+address+":"+port+"/?beginDate=" + + dateFormat.format(selectedBeginDate) + + "&endDate="+dateFormat.format(selectedEndDate) + + "&format="+selectedEnum.getExtension()+"&model=" + + DocumentsEnum.LEDGER.getFileName(); + Desktop.getDesktop().browse(new URI(url)); + } catch (IOException e) { + log.error("Can't open browser", e); + } catch (URISyntaxException e) { + log.error("Can't create news URI", e); + } + } } }