branch feature/1158 created (now f204eea)
This is an automated email from the git hooks/post-receive script. New change to branch feature/1158 in repository lima. See http://git.chorem.org/lima.git at f204eea refs #1158 : recupération du ClosedPeriodEntryBook et stockage dans un map pour le cache. This branch includes the following new commits: new f204eea refs #1158 : recupération du ClosedPeriodEntryBook et stockage dans un map pour le cache. 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 f204eea89db8d798ee43b8463fe20c8ebbf4703b Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 1 10:52:41 2015 +0200 refs #1158 : recupération du ClosedPeriodEntryBook et stockage dans un map pour le cache. -- 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/1158 in repository lima. See http://git.chorem.org/lima.git commit f204eea89db8d798ee43b8463fe20c8ebbf4703b Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 1 10:52:41 2015 +0200 refs #1158 : recupération du ClosedPeriodEntryBook et stockage dans un map pour le cache. --- .../api/ClosedPeriodicEntryBookService.java | 4 ++ .../ejb/ClosedPeriodicEntryBookServiceImpl.java | 12 +++++ .../entity/ClosedPeriodicEntryBookTopiaDao.java | 23 +++++++++ .../ui/common/FinancialTransactionTableModel.java | 59 +++++++++++++++++++--- .../FinancialTransactionTable.java | 2 +- .../FinancialTransactionSearchTableModel.java | 1 + 6 files changed, 94 insertions(+), 7 deletions(-) diff --git a/lima-business-api/src/main/java/org/chorem/lima/business/api/ClosedPeriodicEntryBookService.java b/lima-business-api/src/main/java/org/chorem/lima/business/api/ClosedPeriodicEntryBookService.java index 09a8766..abe2c3c 100644 --- a/lima-business-api/src/main/java/org/chorem/lima/business/api/ClosedPeriodicEntryBookService.java +++ b/lima-business-api/src/main/java/org/chorem/lima/business/api/ClosedPeriodicEntryBookService.java @@ -26,10 +26,14 @@ import org.chorem.lima.entity.ClosedPeriodicEntryBook; import org.chorem.lima.entity.EntryBook; import org.chorem.lima.entity.FinancialPeriod; +import java.util.Date; + /** * Created by davidcosse on 17/01/14. */ public interface ClosedPeriodicEntryBookService { ClosedPeriodicEntryBook getByEntryBookAndFinancialPeriod(EntryBook entryBook, FinancialPeriod financialPeriod); + + ClosedPeriodicEntryBook getByEntryBookAndFinancialPeriod(EntryBook entryBook, Date date); } diff --git a/lima-business/src/main/java/org/chorem/lima/business/ejb/ClosedPeriodicEntryBookServiceImpl.java b/lima-business/src/main/java/org/chorem/lima/business/ejb/ClosedPeriodicEntryBookServiceImpl.java index 5dd7a13..3f0e922 100644 --- a/lima-business/src/main/java/org/chorem/lima/business/ejb/ClosedPeriodicEntryBookServiceImpl.java +++ b/lima-business/src/main/java/org/chorem/lima/business/ejb/ClosedPeriodicEntryBookServiceImpl.java @@ -31,6 +31,7 @@ import org.chorem.lima.entity.FinancialPeriod; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; +import java.util.Date; /** * Created by davidcosse on 17/01/14. @@ -47,4 +48,15 @@ public class ClosedPeriodicEntryBookServiceImpl extends AbstractLimaService impl return result; } + + @Override + public ClosedPeriodicEntryBook getByEntryBookAndFinancialPeriod(EntryBook entryBook, Date date) { + + ClosedPeriodicEntryBookTopiaDao accountTopiaDao = getDaoHelper().getClosedPeriodicEntryBookDao(); + ClosedPeriodicEntryBook result = accountTopiaDao.findByEntryBookAndDate(entryBook, date); + + return result; + } + + } diff --git a/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookTopiaDao.java b/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookTopiaDao.java index 6abae2d..8fa7516 100644 --- a/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookTopiaDao.java +++ b/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookTopiaDao.java @@ -71,6 +71,29 @@ public class ClosedPeriodicEntryBookTopiaDao extends AbstractClosedPeriodicEntry } /** + * Return ClosedPeriodicEntryBook by EntryBook and FinancialPeriod. + * + * @param entryBook + * @param date + * @return ClosedPeriodicEntryBook + */ + public ClosedPeriodicEntryBook findByEntryBookAndDate( + EntryBook entryBook, Date date) { + + HqlAndParametersBuilder<ClosedPeriodicEntryBook> builder = newHqlAndParametersBuilder(); + + builder.addEquals(ClosedPeriodicEntryBook.PROPERTY_ENTRY_BOOK, entryBook); + + builder.addLowerOrEquals(PROPERTY_BEGIN_DATE, date); + + builder.addGreaterOrEquals(PROPERTY_END_DATE, date); + + ClosedPeriodicEntryBook closedPeriodicEntryBook = findUnique(builder.getHql(), builder.getHqlParameters()); + + return closedPeriodicEntryBook; + } + + /** * Retourne toutes les ClosedPeriodicEntryBook par interval de date * sur les periodes sur lequelles elles portent ordonnée par journal. * 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 53c028c..65ec3c1 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,14 +22,19 @@ package org.chorem.lima.ui.common; * #L% */ +import com.google.common.collect.Maps; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.lima.business.ServiceListener; +import org.chorem.lima.business.api.ClosedPeriodicEntryBookService; +import org.chorem.lima.business.api.FinancialPeriodService; import org.chorem.lima.business.api.FinancialTransactionService; import org.chorem.lima.business.exceptions.AfterLastFiscalPeriodException; import org.chorem.lima.business.exceptions.BeforeFirstFiscalPeriodException; import org.chorem.lima.business.exceptions.LockedEntryBookException; import org.chorem.lima.business.exceptions.LockedFinancialPeriodException; import org.chorem.lima.business.utils.EntryComparator; +import org.chorem.lima.entity.ClosedPeriodicEntryBook; import org.chorem.lima.entity.Entry; import org.chorem.lima.entity.EntryImpl; import org.chorem.lima.entity.FinancialTransaction; @@ -45,13 +50,14 @@ import org.chorem.lima.ui.financialtransaction.VoucherColumn; import java.math.BigDecimal; import java.util.Collection; import java.util.List; +import java.util.Map; import static org.nuiton.i18n.I18n.t; /** * @author Sylvain Bavencoff <bavencoff@codelutin.com> */ -public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> { +public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> implements ServiceListener { /** serialVersionUID. */ private static final long serialVersionUID = -7495388454688562991L; @@ -61,25 +67,28 @@ public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> { /** Service (just to update setValueAt(). */ protected FinancialTransactionService financialTransactionService; + protected Map<FinancialTransaction, Boolean> lockedByTransaction; + + protected ClosedPeriodicEntryBookService closedPeriodicEntryBookService; + public FinancialTransactionTableModel() { setComparator(new EntryComparator()); - financialTransactionService = - LimaServiceFactory.getService(FinancialTransactionService.class); + financialTransactionService = LimaServiceFactory.getService(FinancialTransactionService.class); + closedPeriodicEntryBookService = LimaServiceFactory.getService(ClosedPeriodicEntryBookService.class); + LimaServiceFactory.addServiceListener(FinancialPeriodService.class, this); + lockedByTransaction = Maps.newHashMap(); } @Override protected void initColumn() { - addColumn(new DateColumn()); addColumn(new VoucherColumn()); addColumn(new AccountColumn()); addColumn(new DescriptionColumn()); addColumn(new DebitColumn()); addColumn(new CreditColumn()); - - } public void setTransactions(List<FinancialTransaction> transactions) { @@ -94,6 +103,36 @@ public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> { return entry.getFinancialTransaction(); } + public boolean isLocked(int row) { + + FinancialTransaction transaction = getTransactionAt(row); + + Boolean locked = lockedByTransaction.get(transaction); + + if (locked == null) { + ClosedPeriodicEntryBook closedPeriodicEntryBook = + closedPeriodicEntryBookService.getByEntryBookAndFinancialPeriod( + transaction.getEntryBook(), + transaction.getTransactionDate()); + if (log.isDebugEnabled()) { + log.debug("transaction " + transaction.getTransactionDate() + " : " + closedPeriodicEntryBook.isLocked()); + } + locked = closedPeriodicEntryBook.isLocked(); + lockedByTransaction.put(transaction, locked); + } + + return locked; + } + + public boolean isCellNavigable(int row, int column) { + return super.isCellEditable(row, column); + } + + @Override + public boolean isCellEditable(int row, int column) { + return super.isCellEditable(row, column) && !isLocked(row); + } + public int indexOf(FinancialTransaction transaction) { int index = 0; Collection<Entry> entriesTransaction = transaction.getEntry(); @@ -267,4 +306,12 @@ public class FinancialTransactionTableModel extends TableModelWithGroup<Entry> { int lastRow = firstRow + transaction.sizeEntry() - 1; fireTableRowsUpdated(firstRow, lastRow); } + + @Override + public void notifyMethod(String serviceName, String methodeName) { + log.debug("Nom de la méthode : " + methodeName); + if (methodeName.contains("blockClosedPeriodicEntryBook")) { + lockedByTransaction.clear(); + } + } } diff --git a/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java b/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java index cae0c9c..54aa2c7 100644 --- a/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java +++ b/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java @@ -115,7 +115,7 @@ public class FinancialTransactionTable extends FinancialTransactionDefaultTable< } else { column++; } - } while (!end && !tableModel.isCellEditable(row,column)); + } while (!end && !tableModel.isCellNavigable(row,column)); changeSelection(row, column, false, false); } } 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 e4f1629..9dff164 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 @@ -102,6 +102,7 @@ public class FinancialTransactionSearchTableModel extends FinancialTransactionTa } public void notifyMethod(String serviceName, String methodeName) { + super.notifyMethod(serviceName, methodeName); if ((serviceName.contains("FinancialTransaction") || methodeName.contains("importEntries") || methodeName.contains("importAll")) && !methodeName.contains("search")) { //on recharge la liste -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm