Author: sbavencoff Date: 2014-01-31 16:31:55 +0100 (Fri, 31 Jan 2014) New Revision: 3743 Url: http://chorem.org/projects/lima/repository/revisions/3743 Log: fixes #665 : Pr?\195?\169-remplissage de la date sur la saisie d'une ?\195?\169criture Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java 2014-01-31 14:17:41 UTC (rev 3742) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java 2014-01-31 15:31:55 UTC (rev 3743) @@ -26,7 +26,6 @@ package org.chorem.lima.ui.financialtransaction; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.business.ServiceListener; @@ -57,7 +56,6 @@ import java.awt.event.ItemEvent; import java.awt.event.KeyEvent; import java.math.BigDecimal; -import java.util.Calendar; import java.util.Date; import java.util.List; @@ -86,6 +84,7 @@ protected FinancialPeriodService financialPeriodService; protected FiscalPeriodService fiscalPeriodService; protected FinancialTransactionService financialTransactionService; + protected Date lastAssignDate; public FinancialTransactionViewHandler(FinancialTransactionView view) { this.view = view; @@ -398,11 +397,10 @@ FinancialTransactionTableModel tableModel = view.getFinancialTransactionTableModel(); FinancialTransaction transaction = (FinancialTransaction) clipBoard; - FinancialPeriod financialPeriod = (FinancialPeriod) view.getFinancialPeriodComboBox().getSelectedItem(); EntryBook entryBook = (EntryBook)view.getEntryBookComboBox().getSelectedItem(); transaction.setEntryBook(entryBook); - transaction.setTransactionDate(financialPeriod.getBeginDate()); + transaction.setTransactionDate(getUseDate()); tableModel.addTransaction(transaction); @@ -468,28 +466,8 @@ financialTransaction.setEntryBook(entryBook); } - // compute new transaction date from selected financial - // transaction begin date - Calendar actualCalendar = Calendar.getInstance(); - Date transactionDate = financialPeriod.getBeginDate(); - Calendar calEnd = Calendar.getInstance(); - calEnd.setTime(financialPeriod.getEndDate()); - int dayMax = calEnd.get(Calendar.DAY_OF_MONTH); - Calendar calBegin = Calendar.getInstance(); - calBegin.setTime(financialPeriod.getBeginDate()); - int dayMin = calBegin.get(Calendar.DAY_OF_MONTH); - int toDay = actualCalendar.get(Calendar.DAY_OF_MONTH); - - // FIXME echatellier 20120413 explain this code, why actualCalendar - // is not enought ? - if (toDay > dayMax || toDay < dayMin) { - transactionDate = DateUtils.setDays(transactionDate, dayMax); - } else { - transactionDate = DateUtils.setDays(transactionDate, toDay); - } - // set date to the financial transaction - financialTransaction.setTransactionDate(transactionDate); + financialTransaction.setTransactionDate(getUseDate()); // create it financialTransaction = tableModel.addTransaction(financialTransaction); @@ -757,6 +735,9 @@ FinancialTransactionTable table = view.getFinancialTransactionTable(); FinancialTransactionTableModel tableModel = view.getFinancialTransactionTableModel(); Entry entry = tableModel.get(e.getFirstRow()); + FinancialTransaction financialTransaction = entry.getFinancialTransaction(); + lastAssignDate = financialTransaction.getTransactionDate(); + tableModel.sort(); int newRow = tableModel.indexOf(entry); table.changeSelection(newRow, 0, false, false); @@ -797,4 +778,19 @@ view.setAssignableInAllEntries(false); } } + + public Date getUseDate() { + + FinancialPeriod financialPeriod = (FinancialPeriod)view.getFinancialPeriodComboBox().getSelectedItem(); + Date beginDate = financialPeriod.getBeginDate(); + Date endDate = financialPeriod.getEndDate(); + + if (lastAssignDate == null + || lastAssignDate.before(beginDate) + || lastAssignDate.after(endDate) ) { + lastAssignDate = beginDate; + } + + return lastAssignDate; + } }