r3239 - trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports
Author: vsalaun Date: 2011-08-02 13:37:37 +0200 (Tue, 02 Aug 2011) New Revision: 3239 Url: http://chorem.org/repositories/revision/lima/3239 Log: #347 update VatReport Added: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportPeriodSearchPanel.java Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTable.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java Added: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportPeriodSearchPanel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportPeriodSearchPanel.java (rev 0) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportPeriodSearchPanel.java 2011-08-02 11:37:37 UTC (rev 3239) @@ -0,0 +1,138 @@ +package org.chorem.lima.ui.vatreports; + +import static org.nuiton.i18n.I18n._; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Calendar; +import java.util.Date; + +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.lima.entity.FinancialPeriod; +import org.chorem.lima.entity.FiscalPeriod; +import org.chorem.lima.enums.ComboBoxDatesEnum; +import org.chorem.lima.ui.combobox.FinancialPeriodComboBoxModel; +import org.chorem.lima.ui.combobox.FinancialPeriodComboBoxRenderer; +import org.chorem.lima.ui.combobox.FiscalPeriodComboBoxModel; +import org.chorem.lima.ui.combobox.FiscalPeriodComboBoxRenderer; +import org.jdesktop.swingx.JXDatePicker; + +public class VatReportPeriodSearchPanel extends JPanel { + + private static final long serialVersionUID = 1L; + + private static final Log log = + LogFactory.getLog(VatReportPeriodSearchPanel.class); + + protected VatReportViewHandler handler; + + public VatReportPeriodSearchPanel(VatReportViewHandler handler) { + + this.handler = handler; + + //init date + refresh(ComboBoxDatesEnum.FISCAL_PERIOD); + } + + public void refresh(ComboBoxDatesEnum comboBoxPeriodEnum){ + + switch (comboBoxPeriodEnum) { + case PERIOD: + // get begin date + Calendar calendarBegin = Calendar.getInstance(); + // set begindate to JAN 1 - 0:00.000 of this years + Date beginDate = calendarBegin.getTime(); + beginDate = DateUtils.truncate(beginDate, Calendar.YEAR); + //handler().setBeginDate(beginDate); + + // get end date + Calendar calendarEnd = Calendar.getInstance(); + Date endDate = calendarEnd.getTime(); + //handler().setEndDate(endDate); + JLabel beginDateLabel = new JLabel(_("lima.common.begindate")); + final JXDatePicker beginDatePicker = new JXDatePicker(beginDate); + ActionListener beginDateActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + handler.tableModel.setBeginDate(beginDatePicker.getDate()); + handler.refresh(); + } + }; + handler.tableModel.setBeginDate(beginDatePicker.getDate()); + beginDatePicker.addActionListener(beginDateActionListener); + + JLabel endDateLabel = new JLabel(_("lima.common.enddate")); + final JXDatePicker endDatePicker = new JXDatePicker(endDate); + ActionListener endDateActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + handler.tableModel.setEndDate(endDatePicker.getDate()); + handler.refresh(); + } + }; + handler.tableModel.setEndDate(endDatePicker.getDate()); + endDatePicker.addActionListener(endDateActionListener); + handler.refresh(); + + this.removeAll(); + this.add(beginDateLabel); + this.add(beginDatePicker); + this.add(endDateLabel); + this.add(endDatePicker); + break; + + case FISCAL_PERIOD: + FiscalPeriodComboBoxModel fiscalModel = new FiscalPeriodComboBoxModel(true); + FiscalPeriodComboBoxRenderer fiscalRenderer = new FiscalPeriodComboBoxRenderer(); + final JComboBox fiscalPeriod = new JComboBox(fiscalModel); + fiscalPeriod.setRenderer(fiscalRenderer); + fiscalPeriod.setEditable(false); + ActionListener fiscalPeriodActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + FiscalPeriod fPeriod = (FiscalPeriod) fiscalPeriod.getSelectedItem(); + if (fPeriod != null){ + handler.tableModel.setBeginDate(fPeriod.getBeginDate()); + handler.tableModel.setEndDate(fPeriod.getEndDate()); + handler.refresh(); + } + } + }; + fiscalPeriod.addActionListener(fiscalPeriodActionListener); + + this.removeAll(); + this.add(fiscalPeriod); + break; + + case FINANCIAL_PERIOD: + FinancialPeriodComboBoxModel financialModel = new FinancialPeriodComboBoxModel(true); + FinancialPeriodComboBoxRenderer financialRenderer = new FinancialPeriodComboBoxRenderer(); + final JComboBox financialPeriod = new JComboBox(financialModel); + financialPeriod.setRenderer(financialRenderer); + financialPeriod.setEditable(false); + ActionListener financialPeriodActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + FinancialPeriod fPeriod = (FinancialPeriod) financialPeriod.getSelectedItem(); + if (fPeriod !=null){ + handler.tableModel.setBeginDate(fPeriod.getBeginDate()); + handler.tableModel.setEndDate(fPeriod.getEndDate()); + handler.refresh(); + } + } + }; + financialPeriod.addActionListener(financialPeriodActionListener); + this.removeAll(); + this.add(financialPeriod); + break; + } + + } + +} Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTable.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTable.java 2011-08-01 08:03:10 UTC (rev 3238) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTable.java 2011-08-02 11:37:37 UTC (rev 3239) @@ -24,20 +24,13 @@ */ package org.chorem.lima.ui.vatreports; -import java.awt.Color; -import java.awt.Component; import java.math.BigDecimal; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.lima.entity.FinancialPeriod; import org.chorem.lima.ui.celleditor.BigDecimalTableCellEditor; import org.chorem.lima.ui.celleditor.BigDecimalTableCellRenderer; import org.jdesktop.swingx.JXTable; -import org.jdesktop.swingx.decorator.ColorHighlighter; -import org.jdesktop.swingx.decorator.ComponentAdapter; -import org.jdesktop.swingx.decorator.HighlightPredicate; -import org.jdesktop.swingx.decorator.Highlighter; public class VatReportTable extends JXTable { @@ -50,8 +43,6 @@ protected VatReportViewHandler handler; protected VatReportTableModel model; - - private Highlighter colorTransaction; public VatReportTable(VatReportViewHandler handler) { @@ -63,31 +54,6 @@ setDefaultEditor(BigDecimal.class, new BigDecimalTableCellEditor()); //Get new BigDecimal renderer setDefaultRenderer(BigDecimal.class, new BigDecimalTableCellRenderer()); - - //highlight financial financial transactions - //FIXME 2011.06.09 doesn't work !!! - addMonthColor(); } - - /* - * Color the background row in grey if the month number is even (pair in french) - */ - protected void addMonthColor() { - HighlightPredicate predicate = new HighlightPredicate() { - @Override - public boolean isHighlighted(Component renderer, - ComponentAdapter adapter) { - Object object = model.getElementAt(adapter.row); - if (object instanceof FinancialPeriod) { - return true; - } else { - return false; - } - } - }; - colorTransaction = - new ColorHighlighter(predicate, new Color(222,222,222), null); - addHighlighter(colorTransaction); - } } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java 2011-08-01 08:03:10 UTC (rev 3238) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportTableModel.java 2011-08-02 11:37:37 UTC (rev 3239) @@ -27,7 +27,7 @@ import static org.nuiton.i18n.I18n._; import java.math.BigDecimal; -import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.swing.table.AbstractTableModel; @@ -41,7 +41,6 @@ import org.chorem.lima.business.ReportServiceMonitorable; import org.chorem.lima.business.ServiceListener; import org.chorem.lima.business.VatStatementServiceMonitorable; -import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.service.LimaServiceFactory; import org.chorem.lima.util.ErrorHelper; import org.nuiton.topia.TopiaException; @@ -62,18 +61,13 @@ protected ImportServiceMonitorable importService; /** selected financial period */ - protected FiscalPeriod selectedFiscalPeriod; + protected Date selectedBeginDate; + protected Date selectedEndDate; /** data cache */ protected List<VatStatementAmounts> cacheDataList; /** - * list of BigDecimal, save the difference between the number given by the VAT chart - * and the number given by the user afterwards - */ - private List<BigDecimal> diffBigDecimalList = new ArrayList<BigDecimal>(); //list of 65 elements - - /** * variable used for the document edition, * if "true" then the document will be automatically filled in * if "false" the the document will be empty @@ -108,11 +102,11 @@ List<VatStatementAmounts> list = null; - if (selectedFiscalPeriod != null) { + if ((selectedBeginDate != null ) || (selectedEndDate != null)) { try { list = vatStatementService.vatStatementReport( - selectedFiscalPeriod.getBeginDate(), - selectedFiscalPeriod.getEndDate()); + getBeginDate(), + getEndDate()); } catch (LimaException eee) { if (log.isErrorEnabled()) { @@ -133,15 +127,6 @@ } ErrorHelper.showErrorDialog("Can't get VAT list", eee); } - - if (cacheDataList != null) { - for (int index = 0; index < cacheDataList.size(); index++) { - //sets the BigDecimal difference list - if (diffBigDecimalList.size() != 65) { - diffBigDecimalList.add(BigDecimal.ZERO); - } - } - } fireTableDataChanged(); } @@ -152,7 +137,7 @@ switch (column) { case 0: - result = String.class; //libellé + result = String.class; //label break; case 1: result = BigDecimal.class; //solde @@ -210,12 +195,8 @@ result = value.getLabel(); break; case 1: - if (value.getAmount() != null) { - //the number showed is the number given by the chart plus - //the number calculated from the diffBigDecimalList - //diffBigDecimalList can be a negative number ! - result = value.getAmount() - .add(diffBigDecimalList.get(row)); + if ((value.getAmount() != null) && (!value.isHeader())) { + result = value.getAmount(); } else { result = null; } @@ -224,26 +205,21 @@ } return result; } + + public void setBeginDate(Date date) { + selectedBeginDate = date; + } - @Override - public void setValueAt(Object value, int row, int column) { - //check first if the user has changed the number value - if (!getValueAt(row, column).equals((BigDecimal)value)) { - //if so set the difference between the values inside diffBigDecimalList - BigDecimal diff = diffBigDecimalList.get(row) - .add(((BigDecimal) value) - .subtract((BigDecimal)getValueAt(row, column))); - diffBigDecimalList.set(row, diff); - } + public Date getBeginDate() { + return selectedBeginDate; } - public FiscalPeriod getFiscalPeriod() { - return selectedFiscalPeriod; + public void setEndDate(Date date) { + selectedEndDate = date; } - public void setFiscalPeriod(FiscalPeriod fiscalPeriod){ - selectedFiscalPeriod = fiscalPeriod; - refresh(); + public Date getEndDate() { + return selectedEndDate; } public String getAutocomplete() { @@ -258,19 +234,9 @@ } } - public String getDiffBigDecimalList() { - String result = ""; - for (BigDecimal bigdecimal : diffBigDecimalList) { - result += bigdecimal.toString() + "_"; - } - result = result.substring(0, result.length()-1); - return result; - } - @Override public boolean isCellEditable(int row, int column) { - //only the second column can be editable, and also if it contains a number - return ((column ==1) && (getValueAt(row, column) != null)); + return false; } @Override Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx 2011-08-01 08:03:10 UTC (rev 3238) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportView.jaxx 2011-08-02 11:37:37 UTC (rev 3239) @@ -37,6 +37,9 @@ import org.chorem.lima.ui.vatreports.VatTableModel; import org.chorem.lima.ui.vatreports.VatTable; + import org.chorem.lima.enums.ComboBoxDatesEnum; + VatReportPeriodSearchPanel periodSearchPanel = new VatReportPeriodSearchPanel(handler); + void $afterCompleteSetup() { getHandler().refresh(); } @@ -50,12 +53,11 @@ </cell> <cell anchor="west"> <org.chorem.lima.ui.combobox.FiscalPeriodComboBoxModel id="modelFiscalPeriod"/> - <JComboBox id="fiscalPeriodComboBox" - model="{getModelFiscalPeriod()}" - renderer="{new FiscalPeriodComboBoxRenderer()}" - onActionPerformed="getVatReportTableModel().setFiscalPeriod((FiscalPeriod)fiscalPeriodComboBox.getSelectedItem())" - editable="false"/> + <JComboBox id="periodComboBox" javaBean="new JComboBox(ComboBoxDatesEnum.descriptions())" + onActionPerformed="periodSearchPanel.refresh(ComboBoxDatesEnum.valueOfDescription((String) periodComboBox.getSelectedItem())); + validate(); repaint()"/> </cell> + <cell><VatReportPeriodSearchPanel javaBean="periodSearchPanel"/></cell> <cell> <JCheckBox id='autocomplete' text='lima.common.autocomplete' selected='true' onActionPerformed="getVatReportTableModel().setAutocomplete()"/> Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java 2011-08-01 08:03:10 UTC (rev 3238) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/vatreports/VatReportViewHandler.java 2011-08-02 11:37:37 UTC (rev 3239) @@ -78,16 +78,15 @@ * Edit VAT document */ public void editVat() { - if (tableModel.getFiscalPeriod() != null){ + if ((tableModel.getBeginDate() != null) || (tableModel.getEndDate() != null)){ String address = LimaConfig.getInstance().getHostAdress(); try { String url = "http://"+address+":"+port+"/?beginDate=" - + dateFormat.format(tableModel.getFiscalPeriod().getBeginDate()) - + "&endDate=" + dateFormat.format(tableModel.getFiscalPeriod().getEndDate()) + + dateFormat.format(tableModel.getBeginDate()) + + "&endDate=" + dateFormat.format(tableModel.getEndDate()) + "&format=.pdf&model=" + DocumentsEnum.VAT.getFileName() - + "&autocomplete=" + tableModel.getAutocomplete() - + "&datas=" + tableModel.getDiffBigDecimalList(); + + "&autocomplete=" + tableModel.getAutocomplete(); Desktop.getDesktop().browse(new URI(url)); } catch (IOException e) { log.error("Can't open browser", e);
participants (1)
-
vsalaun@users.chorem.org