This is an automated email from the git hooks/post-receive script. New change to branch feature/1286-ordered-entries in repository lima. See http://git.chorem.org/lima.git from 396e0c6 refs #1241 ordonne les entrée par date new 98c9ba0 refs #1286 Regrouppement des entrées par pièces comptable dans la saisie d'écriture The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 98c9ba0ae3ddbcefd1907f8b1b9ae37e5a5d593c Author: dcosse <cosse@codelutin.com> Date: Thu Sep 10 13:27:41 2015 +0200 refs #1286 Regrouppement des entrées par pièces comptable dans la saisie d'écriture Summary of changes: .../ejb/FinancialTransactionServiceImpl.java | 2 +- .../java/org/chorem/lima/entity/EntryTopiaDao.java | 16 +++---- .../ui/common/FinancialTransactionTableModel.java | 56 +++++++++++++++++++++- .../FinancialTransactionSearchTableModel.java | 9 +++- 4 files changed, 71 insertions(+), 12 deletions(-) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/1286-ordered-entries in repository lima. See http://git.chorem.org/lima.git commit 98c9ba0ae3ddbcefd1907f8b1b9ae37e5a5d593c Author: dcosse <cosse@codelutin.com> Date: Thu Sep 10 13:27:41 2015 +0200 refs #1286 Regrouppement des entrées par pièces comptable dans la saisie d'écriture --- .../ejb/FinancialTransactionServiceImpl.java | 2 +- .../java/org/chorem/lima/entity/EntryTopiaDao.java | 16 +++---- .../ui/common/FinancialTransactionTableModel.java | 56 +++++++++++++++++++++- .../FinancialTransactionSearchTableModel.java | 9 +++- 4 files changed, 71 insertions(+), 12 deletions(-) diff --git a/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java b/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java index 274781a..89f8825 100644 --- a/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java +++ b/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java @@ -414,7 +414,7 @@ public class FinancialTransactionServiceImpl extends AbstractLimaService impleme public List<FinancialTransaction> getAllFinancialTransactions(FinancialPeriod financialPeriod, EntryBook entryBook) { List<FinancialTransaction> financialTransactions; - + // ici FinancialTransactionTopiaDao transactionTopiaDao = getDaoHelper().getFinancialTransactionDao(); if (entryBook != null) { diff --git a/lima-business/src/main/java/org/chorem/lima/entity/EntryTopiaDao.java b/lima-business/src/main/java/org/chorem/lima/entity/EntryTopiaDao.java index 158e5a6..f0922c4 100644 --- a/lima-business/src/main/java/org/chorem/lima/entity/EntryTopiaDao.java +++ b/lima-business/src/main/java/org/chorem/lima/entity/EntryTopiaDao.java @@ -68,7 +68,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { HqlAndParametersBuilder<Entry> builder = getEquilibredTransactionQuery(beginDate, endDate); builder.addEquals(Entry.PROPERTY_ACCOUNT, account); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); @@ -112,7 +112,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { HqlAndParametersBuilder<Entry> builder = getEquilibredTransactionQuery(beginDate, endDate); builder.addEquals(PROPERTY_ENTRY_BOOK, entryBook); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); return entries; @@ -173,7 +173,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { builder.addEquals(PROPERTY_ENTRY_BOOK, entryBook); builder.addGreaterOrEquals(PROPERTY_TRANSACTION_DATE, beginDate); builder.addLowerOrEquals(PROPERTY_TRANSACTION_DATE, endDate); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); return entries; @@ -189,7 +189,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { HqlAndParametersBuilder<Entry> builder = newHqlAndParametersBuilder(); builder.addGreaterOrEquals(PROPERTY_TRANSACTION_DATE, beginDate); builder.addLowerOrEquals(PROPERTY_TRANSACTION_DATE, endDate); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); return entries; @@ -225,7 +225,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { "OR " + alias + "." + Entry.PROPERTY_LETTERING + " != ''"); } - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); @@ -280,7 +280,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { builder.addGreaterOrEquals(PROPERTY_TRANSACTION_DATE, beginDate); builder.addLowerOrEquals(PROPERTY_TRANSACTION_DATE, endDate); builder.addEquals(PROPERTY_ENTRY_BOOK, entryBook); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> result = findAll(builder.getHql(), builder.getHqlParameters()); return result; @@ -305,7 +305,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { "OR " + Entry.PROPERTY_VOUCHER + " = ''" + "OR " + Entry.PROPERTY_DESCRIPTION + " = null " + "OR " + Entry.PROPERTY_DESCRIPTION + " = ''"); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); @@ -329,7 +329,7 @@ public class EntryTopiaDao extends AbstractEntryTopiaDao<Entry> { "OR " + Entry.PROPERTY_VOUCHER + " = ''" + "OR " + Entry.PROPERTY_DESCRIPTION + " = null " + "OR " + Entry.PROPERTY_DESCRIPTION + " = ''"); - builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION); + builder.setOrderByArguments(PROPERTY_TRANSACTION_DATE, Entry.PROPERTY_FINANCIAL_TRANSACTION, Entry.PROPERTY_TOPIA_CREATE_DATE); List<Entry> entries = findAll(builder.getHql(), builder.getHqlParameters()); diff --git a/lima-swing/src/main/java/org/chorem/lima/ui/common/FinancialTransactionTableModel.java b/lima-swing/src/main/java/org/chorem/lima/ui/common/FinancialTransactionTableModel.java index 543c993..447b359 100644 --- a/lima-swing/src/main/java/org/chorem/lima/ui/common/FinancialTransactionTableModel.java +++ b/lima-swing/src/main/java/org/chorem/lima/ui/common/FinancialTransactionTableModel.java @@ -22,8 +22,11 @@ package org.chorem.lima.ui.common; * #L% */ +import com.google.common.collect.Lists; +import com.google.common.collect.Ordering; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.lima.business.LimaServiceFactory; import org.chorem.lima.business.api.FinancialTransactionService; import org.chorem.lima.business.exceptions.AfterLastFiscalPeriodException; import org.chorem.lima.business.exceptions.BeforeFirstFiscalPeriodException; @@ -34,7 +37,6 @@ import org.chorem.lima.entity.Entry; import org.chorem.lima.entity.EntryImpl; import org.chorem.lima.entity.FinancialTransaction; import org.chorem.lima.entity.FinancialTransactionImpl; -import org.chorem.lima.business.LimaServiceFactory; import org.chorem.lima.ui.financialtransaction.AccountColumn; import org.chorem.lima.ui.financialtransaction.CreditColumn; import org.chorem.lima.ui.financialtransaction.DayColumn; @@ -44,7 +46,9 @@ import org.chorem.lima.ui.financialtransaction.VoucherColumn; import java.math.BigDecimal; import java.util.Collection; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -78,10 +82,58 @@ public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> { addColumn(new CreditColumn()); } + protected Ordering<Entry> ordering = Ordering.from(new EntryComparator()); + public void setTransactions(List<FinancialTransaction> transactions) { clear(); for (FinancialTransaction transaction : transactions) { - addAll(transaction.getEntry()); + //addAll(transaction.getEntry()); + // Normal entry order is by create date + // But it can append that entries with same voucher or not grouped + // and make transaction reading difficult. + // The following method keep entries ordered by date but group them by voucher to. + List<Entry> result = getOrderedTransactionEntries(transaction); + addAll(result); + } + } + + + //Entries should be ordered from Model and data base. + @Deprecated + protected List<Entry> getOrderedTransactionEntries(FinancialTransaction transaction) { + Collection<Entry> entries = transaction.getEntry(); + List<Entry> orderedEntries = ordering.sortedCopy(entries); + LinkedHashMap<String, List<Entry>> orderedEntriesByVoucher = getEntriesByVoucherByDate(orderedEntries); + List<Entry> result = getGroupedOrderedEntries(orderedEntriesByVoucher); + return result; + } + + private List<Entry> getGroupedOrderedEntries(LinkedHashMap<String, List<Entry>> orderedEntriesByVoucher) { + List<Entry> result = Lists.newArrayList(); + for (Map.Entry<String, List<Entry>> stringListEntry : orderedEntriesByVoucher.entrySet()) { + result.addAll(stringListEntry.getValue()); + } + return result; + } + + protected LinkedHashMap<String, List<Entry>> getEntriesByVoucherByDate(List<Entry> orderedEntries) { + LinkedHashMap<String, List<Entry>> orderedEntriesByVoucher = new LinkedHashMap<>(); + for (Entry orderedEntry : orderedEntries) { + List<Entry> entriesForVoucher = orderedEntriesByVoucher.get(orderedEntry.getVoucher()); + if (entriesForVoucher == null) { + entriesForVoucher = Lists.newArrayList(); + orderedEntriesByVoucher.put(orderedEntry.getVoucher(), entriesForVoucher); + } + entriesForVoucher.add(orderedEntry); + } + return orderedEntriesByVoucher; + } + + public void addAll(List<Entry> values) { + if (values != null && !values.isEmpty()) { + int row = this.values.size(); + this.values.addAll(values); + fireTableRowsInserted(row, row + values.size() - 1); } } diff --git a/lima-swing/src/main/java/org/chorem/lima/ui/financialtransactionsearch/FinancialTransactionSearchTableModel.java b/lima-swing/src/main/java/org/chorem/lima/ui/financialtransactionsearch/FinancialTransactionSearchTableModel.java index 7dc70ae..9f9e5a3 100644 --- a/lima-swing/src/main/java/org/chorem/lima/ui/financialtransactionsearch/FinancialTransactionSearchTableModel.java +++ b/lima-swing/src/main/java/org/chorem/lima/ui/financialtransactionsearch/FinancialTransactionSearchTableModel.java @@ -23,10 +23,10 @@ package org.chorem.lima.ui.financialtransactionsearch; import org.chorem.lima.beans.FinancialTransactionCondition; +import org.chorem.lima.business.LimaServiceFactory; import org.chorem.lima.business.api.FinancialPeriodService; import org.chorem.lima.entity.FinancialTransaction; import org.chorem.lima.entity.FiscalPeriod; -import org.chorem.lima.business.LimaServiceFactory; import org.chorem.lima.ui.common.FinancialTransactionTableModel; import org.chorem.lima.ui.financialtransaction.AccountColumn; import org.chorem.lima.ui.financialtransaction.BalanceColumn; @@ -109,4 +109,11 @@ public class FinancialTransactionSearchTableModel extends FinancialTransactionTa } } + public void setTransactions(List<FinancialTransaction> transactions) { + clear(); + for (FinancialTransaction transaction : transactions) { + addAll(transaction.getEntry()); + } + } + } -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm