Author: echatellier Date: 2012-05-30 12:33:35 +0200 (Wed, 30 May 2012) New Revision: 3432 Url: http://chorem.org/repositories/revision/lima/3432 Log: Remove last topiaquery Added: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialStatementDAOImpl.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/VatStatementDAOImpl.java Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/accountingrules/FranceAccountingRules.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/ExportServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialPeriodServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FiscalPeriodServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/VatStatementServiceImpl.java trunk/lima-business/src/test/java/org/chorem/lima/business/accountingrules/TestAccountingRules.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/AccountDAOImpl.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookDAOImpl.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialPeriodDAOImpl.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialTransactionDAOImpl.java trunk/lima-callao/src/main/java/org/chorem/lima/entity/FiscalPeriodDAOImpl.java Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/accountingrules/FranceAccountingRules.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/accountingrules/FranceAccountingRules.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/accountingrules/FranceAccountingRules.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -40,8 +40,6 @@ import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.entity.FiscalPeriodDAO; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; import java.util.ArrayList; import java.util.Calendar; @@ -50,6 +48,11 @@ import static org.nuiton.i18n.I18n._; +/** + * Surcharge des regles par defaut pour application à la comptabilité française. + * + * @author echatellier + */ public class FranceAccountingRules extends DefaultAccountingRules { protected static final Log log = LogFactory.getLog(FranceAccountingRules.class); @@ -119,10 +122,7 @@ //Checks if is not the first fiscalperiod to create if (fiscalPeriodDAO.count() != 0) { - TopiaQuery query = fiscalPeriodDAO.createQuery(); - query.addOrderDesc(FiscalPeriod.PROPERTY_END_DATE); - //get the last fiscal period - FiscalPeriod lastFiscalPeriod = fiscalPeriodDAO.findByQuery(query); + FiscalPeriod lastFiscalPeriod = fiscalPeriodDAO.getLastFiscalPeriod(); //check the new fiscal period adjoining the last Date dateLastFiscalPeriod = lastFiscalPeriod.getEndDate(); @@ -173,19 +173,16 @@ /** * Règles de vérification de fermeture d'un exercice, appliquées à la comptabilité française. + * + * On ne peut pas clore la dernière period comptable ouverte. */ @Override public void blockFiscalPeriodRules(FiscalPeriod fiscalPeriod) throws LimaException { try { FiscalPeriodDAO fiscalPeriodDAO = getDaoHelper().getFiscalPeriodDAO(); - TopiaQuery query = fiscalPeriodDAO.createQuery(); - fiscalPeriodDAO.findAllByQuery(query); - query.addWhere(FiscalPeriod.PROPERTY_LOCKED, Op.EQ, false); - query.addOrder(FiscalPeriod.PROPERTY_END_DATE); - FiscalPeriod oldestUnBlockedFiscalPeriod = - fiscalPeriodDAO.findByQuery(query); + fiscalPeriodDAO.getLastUnlockedFiscalPeriod(); //Check if the fiscal period to block is the oldest if (!oldestUnBlockedFiscalPeriod.equals(fiscalPeriod)) { Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/ExportServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/ExportServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/ExportServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -50,7 +50,6 @@ import org.chorem.lima.entity.VatStatement; import org.chorem.lima.entity.VatStatementDAO; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; import javax.ejb.Local; import javax.ejb.Remote; @@ -255,10 +254,8 @@ FinancialStatementDAO financialStatementDAO = getDaoHelper().getFinancialStatementDAO(); - TopiaQuery query = financialStatementDAO.createQuery(); - query.addOrder(FinancialStatement.TOPIA_CREATE_DATE); List<FinancialStatement> listFinancialStatements = - financialStatementDAO.findAllByQuery(query); + financialStatementDAO.findAllOrderedByCreateDate(); // For all Financialstatements for (FinancialStatement financialStatement : listFinancialStatements) { @@ -332,10 +329,8 @@ // Get all Vatstatements VatStatementDAO vatStatementDAO = getDaoHelper().getVatStatementDAO(); - TopiaQuery query = vatStatementDAO.createQuery(); - query.addOrder(VatStatement.TOPIA_CREATE_DATE); List<VatStatement> listVatStatements = - vatStatementDAO.findAllByQuery(query); + vatStatementDAO.findAllOrderedByCreateDate(); // For all Vatstatements for (VatStatement vatStatement : listVatStatements) { Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialPeriodServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialPeriodServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialPeriodServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -45,11 +45,8 @@ import org.chorem.lima.entity.EntryBookDAO; import org.chorem.lima.entity.FinancialPeriod; import org.chorem.lima.entity.FinancialPeriodDAO; -import org.chorem.lima.entity.FiscalPeriod; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; - /** * Gestion des périodes intermédiaires durant l'exercice. * Chaque timeSpan sera fixe, et devra correspondre à un mois complet. @@ -114,13 +111,8 @@ List<FinancialPeriod> result = null; try { - FinancialPeriodDAO financialPeriodDAO = getDaoHelper().getFinancialPeriodDAO(); - - TopiaQuery query = financialPeriodDAO.createQuery() - .addOrder(FinancialPeriod.PROPERTY_BEGIN_DATE); - - result = financialPeriodDAO.findAllByQuery(query); + result = financialPeriodDAO.findAllOrderByBeginDate(); } catch (Exception ex) { throw new LimaException("Can't get periods", ex); } @@ -135,14 +127,8 @@ List<FinancialPeriod> result = null; try { - FinancialPeriodDAO financialPeriodDAO = getDaoHelper().getFinancialPeriodDAO(); - - TopiaQuery query = financialPeriodDAO.createQuery() - .addEquals(FinancialPeriod.PROPERTY_LOCKED, Boolean.FALSE) - .addOrder(FinancialPeriod.PROPERTY_BEGIN_DATE); - - result = financialPeriodDAO.findAllByQuery(query); + result = financialPeriodDAO.findAllUnlockedOrderByBeginDate(); } catch (Exception ex) { throw new LimaException("Can't create period", ex); } @@ -158,12 +144,7 @@ try { FinancialPeriodDAO financialPeriodDAO = getDaoHelper().getFinancialPeriodDAO(); - - TopiaQuery query = financialPeriodDAO.createQuery() - .addBetween(FinancialPeriod.PROPERTY_BEGIN_DATE, beginDate, endDate) - .addOrder(FinancialPeriod.PROPERTY_BEGIN_DATE); - - result = financialPeriodDAO.findAllByQuery(query); + result = financialPeriodDAO.findByDates(beginDate, endDate); } catch (Exception ex) { throw new LimaException("Can't get period", ex); } @@ -201,9 +182,7 @@ ClosedPeriodicEntryBook closedPeriodicEntryBook = null; try { - ClosedPeriodicEntryBookDAO closedPeriodicEntryBookDAO = getDaoHelper().getClosedPeriodicEntryBookDAO(); - closedPeriodicEntryBook = closedPeriodicEntryBookDAO.findByEntryBookAndFinancialPeriod(entryBook, financialPeriod); } catch (Exception ex) { throw new LimaException("Can't get closed periodic", ex); @@ -218,33 +197,8 @@ List<ClosedPeriodicEntryBook> result = null; try { - - ClosedPeriodicEntryBookDAO closedPeriodicEntryBookDAO - = getDaoHelper().getClosedPeriodicEntryBookDAO(); - - //Get closedperiodicentrybook from unlocked fiscalperiod - TopiaQuery query = closedPeriodicEntryBookDAO.createQuery("E"); - query.addFrom(FiscalPeriod.class, "F") - .addInElements("E." + ClosedPeriodicEntryBook.PROPERTY_FINANCIAL_PERIOD, - "F." + FiscalPeriod.PROPERTY_FINANCIAL_PERIOD) - .addEquals("F." + FiscalPeriod.PROPERTY_LOCKED, Boolean.FALSE); - String orderProperty = - TopiaQuery.getProperty("E", ClosedPeriodicEntryBook.PROPERTY_FINANCIAL_PERIOD, - FinancialPeriod.PROPERTY_BEGIN_DATE); - query.addOrder(orderProperty); - - //IMPORTANT : LOADING ClosedPeriodicEntryBook AND IS COLUMN FOR NO LAZY EXCEPTION - String loadEntryBookProperty = - TopiaQuery.getProperty(ClosedPeriodicEntryBook.PROPERTY_ENTRY_BOOK, - EntryBook.PROPERTY_LABEL); - query.addLoad(loadEntryBookProperty); - String loadFinancialPeriodProperty = - TopiaQuery.getProperty(ClosedPeriodicEntryBook.PROPERTY_FINANCIAL_PERIOD, - FinancialPeriod.PROPERTY_BEGIN_DATE); - query.addLoad(loadFinancialPeriodProperty); - - //call query - result = closedPeriodicEntryBookDAO.findAllByQuery(query); + ClosedPeriodicEntryBookDAO closedPeriodicEntryBookDAO = getDaoHelper().getClosedPeriodicEntryBookDAO(); + result = closedPeriodicEntryBookDAO.findAllClosedPeriodicEntryBooksFromUnblockedFiscalPeriod(); } catch (Exception ex) { throw new LimaException("Can't get closed periodics", ex); } Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialStatementServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -25,6 +25,19 @@ package org.chorem.lima.business.ejb; +import static org.nuiton.i18n.I18n._; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.StringTokenizer; + +import javax.ejb.EJB; +import javax.ejb.Remote; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; + import org.apache.commons.lang3.StringUtils; import org.chorem.lima.FinancialStatementWayEnum; import org.chorem.lima.beans.Amounts; @@ -42,22 +55,7 @@ import org.chorem.lima.entity.FinancialStatement; import org.chorem.lima.entity.FinancialStatementDAO; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; -import javax.ejb.EJB; -import javax.ejb.Remote; -import javax.ejb.Stateless; -import javax.ejb.TransactionAttribute; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.StringTokenizer; - -import static org.nuiton.i18n.I18n._; - @Stateless @Remote(FinancialStatementService.class) @TransactionAttribute @@ -162,13 +160,8 @@ List<FinancialStatement> financialStatements = null; try { - FinancialStatementDAO financialStatementDAO = getDaoHelper().getFinancialStatementDAO(); - - TopiaQuery query = financialStatementDAO.createQuery(); - query.addEquals(FinancialStatement.PROPERTY_MASTER_FINANCIAL_STATEMENT, masterFinancialStatement) - .addOrder(FinancialStatement.TOPIA_CREATE_DATE); - financialStatements = financialStatementDAO.findAllByQuery(query); + financialStatements = financialStatementDAO.findChildrenFinancialStatement(masterFinancialStatement); } catch (Exception ex) { throw new LimaException("Can't get childreen statements", ex); } @@ -503,28 +496,4 @@ } return result.toString(); } - - protected List<FinancialStatement> findFinancialStatementByAccountNumber(String accountNumber) throws TopiaException { - - FinancialStatementDAO financialStatementDAO = getDaoHelper().getFinancialStatementDAO(); - TopiaQuery query = financialStatementDAO.createQuery(); - - String accountProperty = - TopiaQuery.getProperty(FinancialStatement.PROPERTY_ACCOUNTS); - String creditAccountProperty = - TopiaQuery.getProperty(FinancialStatement.PROPERTY_CREDIT_ACCOUNTS); - String debitAccountProperty = - TopiaQuery.getProperty(FinancialStatement.PROPERTY_DEBIT_ACCOUNTS); - String provisionDeprecationProperty = - TopiaQuery.getProperty(FinancialStatement.PROPERTY_PROVISION_DEPRECATION_ACCOUNTS); - String likeCondition = " " + Op.LIKE + " '%" + accountNumber + "%'"; - - query.addWhere(accountProperty + likeCondition - + " OR " + creditAccountProperty + likeCondition - + " OR " + debitAccountProperty + likeCondition - + " OR " + provisionDeprecationProperty + likeCondition); - - return financialStatementDAO.findAllByQuery(query); - } - } Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -35,7 +35,6 @@ import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; -import org.chorem.lima.FinancialStatementWayEnum; import org.chorem.lima.beans.FinancialTransactionSearch; import org.chorem.lima.business.AccountingRules; import org.chorem.lima.business.LimaConfig; @@ -55,8 +54,6 @@ import org.chorem.lima.entity.FinancialTransactionDAO; import org.chorem.lima.entity.FiscalPeriod; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; /** * Cette classe permet la création d'une transaction comptable dans l'application. @@ -345,95 +342,27 @@ @Override public List<Object> searchFinancialTransaction(FinancialTransactionSearch financialTransactionSearch) throws LimaException { List<Object> result = new ArrayList<Object>(); - List<FinancialTransaction> financialTransactions; try { - FinancialTransactionDAO financialTransactionDAO = getDaoHelper().getFinancialTransactionDAO(); - TopiaQuery query = financialTransactionDAO.createQuery("T"); - - String dateProperty = TopiaQuery.getProperty(FinancialTransaction.PROPERTY_TRANSACTION_DATE); - String accountNumberProperty = TopiaQuery.getProperty(Entry.PROPERTY_ACCOUNT, Account.PROPERTY_ACCOUNT_NUMBER); - - query.addDistinct(); - query.addLeftJoin("T." + FinancialTransaction.PROPERTY_ENTRY, "E", true); - //Load for lazy - query.addLoad(FinancialTransaction.PROPERTY_ENTRY_BOOK); - // .addLoad(FinancialTransaction.PROPERTY_FINANCIAL_PERIOD); - - Date beginDate = financialTransactionSearch.getBeginDate(); - Date endDate = financialTransactionSearch.getEndDate(); - if (beginDate != null && endDate != null) { - query.addBetween(dateProperty, beginDate, endDate); - } else if (beginDate != null) { - query.addEquals(dateProperty, beginDate); - } - String voucher = financialTransactionSearch.getVoucher(); - if (voucher != null) { - query.addWhere("E.voucher", Op.LIKE, "%" + voucher + "%"); - } - String description = financialTransactionSearch.getDescription(); - if (description != null) { - query.addWhere("E.description", Op.LIKE, "%" + description + "%"); - } - String letter = financialTransactionSearch.getLettering(); - if (letter != null) { - query.addEquals("E.lettering", letter); - } - Account account = financialTransactionSearch.getAccount(); + // first search on account dao String accountsList = financialTransactionSearch.getAccountList(); - if (account != null) { - query.addEquals("E.account", account); - } else if (accountsList != null) { + List<Account> accounts = null; + if (accountsList != null) { AccountDAO accountDAO = getDaoHelper().getAccountDAO(); - List<Account> accounts = - accountDAO.stringToListAccounts(accountsList, false); - StringBuffer accountNumbers = new StringBuffer("0,"); - int max = accounts.size(); - for (int i = 1; i <= max; i++) { - accountNumbers.append(accounts.get(i - 1).getAccountNumber()); - if (i != max) { - accountNumbers.append(","); - } - } - if (accounts.size() > 0) { - query.addWhere("E." + accountNumberProperty + " in (" + accountNumbers + ")"); - } - + accounts = accountDAO.stringToListAccounts(accountsList, false); } - EntryBook entryBook = financialTransactionSearch.getEntryBook(); - String amount = financialTransactionSearch.getAmount(); - String amount2 = financialTransactionSearch.getAmount2(); - String operator = financialTransactionSearch.getOperator(); - FinancialStatementWayEnum fStWayEnum = financialTransactionSearch.getAmountWayEnum(); - if (entryBook != null) { - query.addEquals("T." + FinancialTransaction.PROPERTY_ENTRY_BOOK, entryBook); - } - if (amount != null) { - if (amount2 != null) { - BigDecimal value1 = new BigDecimal(amount); - BigDecimal value2 = new BigDecimal(amount2); - query.addBetween("E.amount", value1, value2); - } else if (operator != null) { - query.addWhere("E.amount" + " " + operator + " " + amount); - } - switch (fStWayEnum) { - case CREDIT: - query.addEquals("E.debit", false); - break; - case DEBIT: - query.addEquals("E.debit", true); - break; - } - } - financialTransactions = financialTransactionDAO.findAllByQuery(query); + // next on financial transaction dao + FinancialTransactionDAO financialTransactionDAO = getDaoHelper().getFinancialTransactionDAO(); + List<FinancialTransaction> financialTransactions = financialTransactionDAO.searchFinancialTransaction( + financialTransactionSearch, accounts); + + // merge result with sub entries EntryDAO entryDAO = getDaoHelper().getEntryDAO(); for (FinancialTransaction financialTransaction : financialTransactions) { result.add(financialTransaction); - TopiaQuery query2 = entryDAO.createQuery(); - query2.addEquals(Entry.PROPERTY_FINANCIAL_TRANSACTION, financialTransaction); - List<Entry> entries = entryDAO.findAllByQuery(query2); + List<Entry> entries = entryDAO.findAllByFinancialTransaction(financialTransaction); result.addAll(entries); } } catch (Exception ex) { Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FiscalPeriodServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FiscalPeriodServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FiscalPeriodServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -67,7 +67,6 @@ import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.entity.FiscalPeriodDAO; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; /** * Gestion des exercices. @@ -201,11 +200,8 @@ try { FiscalPeriodDAO fiscalPeriodDAO = getDaoHelper().getFiscalPeriodDAO(); - TopiaQuery query = fiscalPeriodDAO.createQuery(); - query.addOrderDesc(FiscalPeriod.PROPERTY_END_DATE); - //get the last fiscal period - result = fiscalPeriodDAO.findByQuery(query); + result = fiscalPeriodDAO.getLastFiscalPeriod(); } catch (Exception ex) { throw new LimaException("Can't get period", ex); Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/VatStatementServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/VatStatementServiceImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/VatStatementServiceImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -46,10 +46,7 @@ import org.chorem.lima.entity.AccountDAO; import org.chorem.lima.entity.VatStatement; import org.chorem.lima.entity.VatStatementDAO; -import org.chorem.lima.entity.VatStatementImpl; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; /** * Permet d'implémenter le plan de la déclaration de TVA @@ -125,12 +122,8 @@ try { VatStatementDAO vatStatementDAO = getDaoHelper().getVatStatementDAO(); - - TopiaQuery query = vatStatementDAO.createQuery(); - query.addEquals("masterVatStatement", masterVatStatement) - .addOrder(VatStatement.TOPIA_CREATE_DATE); - vatStatements = vatStatementDAO.findAllByQuery(query); - } catch (Exception ex) { + vatStatements = vatStatementDAO.getChildrenVatStatement(masterVatStatement); + } catch (TopiaException ex) { throw new LimaException("Can't get vat statements", ex); } return vatStatements; @@ -145,7 +138,7 @@ VatStatementDAO vatStatementHeaderDAO = getDaoHelper().getVatStatementDAO(); //update vatStatementHeaderDAO.update(vatStatement); - } catch (Exception ex) { + } catch (TopiaException ex) { throw new LimaException("Can't update vat statement", ex); } } @@ -212,24 +205,10 @@ try { VatStatementDAO vatStatementDAO = getDaoHelper().getVatStatementDAO(); - TopiaQuery query = vatStatementDAO.createQuery(); + VatStatement vatStatement2 = vatStatementDAO.findVatStatementByLabel(vatStatement.getLabel()); - String labelProperty = - TopiaQuery.getProperty(VatStatement.PROPERTY_LABEL); - - //not to be used causing query exception with ' character - //query.addWhere(labelProperty + " " + Op.LIKE + " '%" + - // vatStatement.getLabel() + "%'"); - - query.addWhere(labelProperty, Op.LIKE, vatStatement.getLabel()); - query.setMaxResults(1); - - log.debug("query to find account by VAT " + query); - - List<VatStatement> vatStatementsList = vatStatementDAO.findAllByQuery(query); - - if (vatStatementsList.size() > 0) { - accountNumbersList = vatStatementsList.get(0).getAccounts(); + if (vatStatement2 != null) { + accountNumbersList = vatStatement2.getAccounts(); } } catch (TopiaException ex) { throw new LimaException("Can't find accountNumber by vatStatement", ex); @@ -275,32 +254,13 @@ @Override public VatStatement findVatStatementByString(String label) throws LimaException { - VatStatement vatStatement = new VatStatementImpl(); + VatStatement vatStatement = null; try { VatStatementDAO vatStatementDAO = getDaoHelper().getVatStatementDAO(); - TopiaQuery query = vatStatementDAO.createQuery(); + vatStatement = vatStatementDAO.findVatStatementByLabel(label); - String labelProperty = - TopiaQuery.getProperty(VatStatement.PROPERTY_LABEL); - - //not to be used causing query exception with ' character - //query.addWhere(labelProperty + " " + Op.LIKE + " '%" + - // vatStatement.getLabel() + "%'"); - - query.addWhere(labelProperty, Op.LIKE, label); - query.setMaxResults(1); - - log.debug("query to find account by VAT " + query); - - List<VatStatement> vatStatementsList = - vatStatementDAO.findAllByQuery(query); - - if (vatStatementsList.size() > 0) { - vatStatement = vatStatementsList.get(0); - } - } catch (TopiaException ex) { throw new LimaException("Can't find vatstatement", ex); } Modified: trunk/lima-business/src/test/java/org/chorem/lima/business/accountingrules/TestAccountingRules.java =================================================================== --- trunk/lima-business/src/test/java/org/chorem/lima/business/accountingrules/TestAccountingRules.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-business/src/test/java/org/chorem/lima/business/accountingrules/TestAccountingRules.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -32,7 +32,6 @@ import org.chorem.lima.entity.FiscalPeriodDAO; import org.junit.Ignore; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; import java.util.ArrayList; import java.util.Calendar; @@ -73,10 +72,7 @@ //Checks if is not the first fiscalperiod to create if (fiscalPeriodDAO.count() != 0) { - TopiaQuery query = fiscalPeriodDAO.createQuery(); - query.addOrderDesc(FiscalPeriod.PROPERTY_END_DATE); - //get the last fiscal period - FiscalPeriod lastFiscalPeriod = fiscalPeriodDAO.findByQuery(query); + FiscalPeriod lastFiscalPeriod = fiscalPeriodDAO.getLastFiscalPeriod(); //check the new fiscal period adjoining the last Date dateLastFiscalPeriod = lastFiscalPeriod.getEndDate(); Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/AccountDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/AccountDAOImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/AccountDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -161,11 +161,6 @@ } //search all account start with accountnumber else { - /*TopiaQuery query = createQuery(); - String subAccountsProperty = TopiaQuery.getProperty(Account.PROPERTY_SUB_ACCOUNTS); - query.addWhere("not exists elements (" + subAccountsProperty + ")") - .addWhere(Account.PROPERTY_ACCOUNT_NUMBER, Op.LIKE, s + "%"); - List<Account> accountsResult = (List<Account>) findAllByQuery(query);*/ String query = "FROM " + Account.class.getName() + " a WHERE NOT IN (" + "FROM " + Account.class.getName() + " b where b.accountNumber like a.accountNumber+'%')" + Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookDAOImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/ClosedPeriodicEntryBookDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -115,7 +115,7 @@ " WHERE :begindate <= financialPeriod.beginDate " + " AND financialPeriod.beginDate <= :endDate" + " ORDER BY entryBook.code"; - return context.find(query, 0d, 0d, "beginDate", beginDate, "endDate", endDate); + return context.find(query, "beginDate", beginDate, "endDate", endDate); } /** @@ -135,7 +135,7 @@ " WHERE :begindate <= financialPeriod.beginDate " + " AND financialPeriod.beginDate <= :endDate" + " AND entryBook = :entryBook"; - return context.find(query, 0d, 0d, "beginDate", beginDate, "endDate", endDate, "entryBook", entryBook); + return context.find(query, "beginDate", beginDate, "endDate", endDate, "entryBook", entryBook); } /** @@ -156,7 +156,23 @@ " AND financialPeriod.beginDate <= :endDate" + " AND entryBook = :entryBook" + " AND locked = true"; - return context.find(query, 0d, 0d, "beginDate", beginDate, "endDate", endDate, "entryBook", entryBook); + return context.find(query, "beginDate", beginDate, "endDate", endDate, "entryBook", entryBook); } + /** + * Retourne les ClosedPeriodicEntryBook clos de toutes les exercive encore ouvert. + * + * @return les ClosedPeriodicEntryBook + * @throws TopiaException + */ + public List<ClosedPeriodicEntryBook> findAllClosedPeriodicEntryBooksFromUnblockedFiscalPeriod() throws TopiaException { + String query = "FROM " + ClosedPeriodicEntryBook.class.getName() + " C" + + ", " + FiscalPeriod.class.getName() + " F" + + " WHERE E.financialPeriod IN ELEMENTS (F.financialPeriod)" + + " ORDER BY E.financialPeriod.beginDate"; + + List<ClosedPeriodicEntryBook> result = context.find(query); + return result; + } + } Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialPeriodDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialPeriodDAOImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialPeriodDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -67,11 +67,43 @@ String query = "FROM " + FinancialPeriod.class.getName() + " WHERE :beginDate <= beginDate" + - " AND beginDate <= :endDate"; + " AND beginDate <= :endDate" + + " ORDER by beginDate"; // add unique result here List<FinancialPeriod> financialPeriod = context.find(query, "beginDate", beginDate, "endDate", endDate); return financialPeriod; } + /** + * Retourne toutes les periodes ordonnées par date de debut de periode. + * + * @return all period ordered + * @throws TopiaException + */ + public List<FinancialPeriod> findAllOrderByBeginDate() throws TopiaException { + String query = "FROM " + FinancialPeriod.class.getName() + + " ORDER BY beginDate"; + + // add unique result here + List<FinancialPeriod> financialPeriod = context.find(query); + return financialPeriod; + } + + /** + * Retourne toutes les periodes ordonnées par date de debut de periode. + * + * @return all period ordered + * @throws TopiaException + */ + public List<FinancialPeriod> findAllUnlockedOrderByBeginDate() throws TopiaException { + String query = "FROM " + FinancialPeriod.class.getName() + + " WHERE locked = false" + + " ORDER BY beginDate"; + + // add unique result here + List<FinancialPeriod> financialPeriod = context.find(query); + return financialPeriod; + } + } Added: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialStatementDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialStatementDAOImpl.java (rev 0) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialStatementDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -0,0 +1,66 @@ +/* + * #%L + * Lima callao + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 CodeLutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package org.chorem.lima.entity; + +import java.util.List; + +import org.nuiton.topia.TopiaException; + +/** + * Ajout de requetes specifiques aux {@link FinancialStatement} sur le DAO. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class FinancialStatementDAOImpl<E extends FinancialStatement> extends FinancialStatementDAOAbstract<FinancialStatement> { + + /** + * Find all {@code FinancialStatement} ordered by topia create date. + * @throws TopiaException + */ + public List<FinancialStatement> findAllOrderedByCreateDate() throws TopiaException { + String query = "FROM " + FinancialStatement.class.getName() + + " ORDER BY " + FinancialStatement.TOPIA_CREATE_DATE; + List<FinancialStatement> result = context.find(query); + return result; + } + + /** + * Find all {@code FinancialStatement} ordered by topia create date. + * @throws TopiaException + */ + public List<FinancialStatement> findChildrenFinancialStatement(FinancialStatement financialStatement) throws TopiaException { + String query = "FROM " + FinancialStatement.class.getName() + + " WHERE masterFinancialStatement = :masterFinancialStatement" + + " ORDER BY " + FinancialStatement.TOPIA_CREATE_DATE; + List<FinancialStatement> result = context.find(query, "masterFinancialStatement", financialStatement); + return result; + } + +} //FinancialStatementDAO Property changes on: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialStatementDAOImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialTransactionDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialTransactionDAOImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/FinancialTransactionDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -25,9 +25,14 @@ package org.chorem.lima.entity; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.apache.commons.collections.CollectionUtils; +import org.chorem.lima.FinancialStatementWayEnum; +import org.chorem.lima.beans.FinancialTransactionSearch; import org.nuiton.topia.TopiaException; /** @@ -239,4 +244,123 @@ return result; } + /** + * Search financial transaction. + * + * @param financialTransactionSearch search parameters + * @param accounts search accounts + * @return financial transaction + * @throws TopiaException + */ + public List<FinancialTransaction> searchFinancialTransaction(FinancialTransactionSearch financialTransactionSearch, + List<Account> accounts) throws TopiaException { + String query = "SELECT T FROM " + FinancialTransaction.class.getName() + " T"+ + " LEFT JOIN T.entry AS E" + + " WHERE TRUE "; // to not manage first where in all condition + + List<Object> args = new ArrayList<Object>(); + + // dates + Date beginDate = financialTransactionSearch.getBeginDate(); + Date endDate = financialTransactionSearch.getEndDate(); + if (beginDate != null && endDate != null) { + query += " AND :beginDate <= T.transactionDate" + + " AND T.transactionDate <= :endDate"; + args.add("beginDate"); + args.add(beginDate); + args.add("endDate"); + args.add(endDate); + } else if (beginDate != null) { + query += " AND :beginDate = T.transactionDate"; + args.add(beginDate); + args.add("beginDate"); + } + + // voucher + String voucher = financialTransactionSearch.getVoucher(); + if (voucher != null) { + query += " AND E.voucher LIKE :voucher"; + args.add("voucher"); + args.add("%" + voucher + "%"); + } + + // description + String description = financialTransactionSearch.getDescription(); + if (description != null) { + query += " AND E.description LIKE :description"; + args.add("description"); + args.add("%" + description + "%"); + } + + // letter + String lettering = financialTransactionSearch.getLettering(); + if (lettering != null) { + query += " AND E.lettering = :lettering"; + args.add("lettering"); + args.add("%" + lettering + "%"); + } + + // accounts + Account account = financialTransactionSearch.getAccount(); + String accountsList = financialTransactionSearch.getAccountList(); + if (account != null) { + query += " AND E.account = :account"; + args.add("account"); + args.add(account); + } else if (CollectionUtils.isNotEmpty(accounts)) { + StringBuffer accountNumbers = new StringBuffer(); + for (int i = 0; i < accounts.size(); i++) { + accountNumbers.append(accounts.get(i - 1).getAccountNumber()); + if (i < accounts.size() - 1) { + accountNumbers.append(","); + } + } + if (accounts.size() > 0) { + query += " AND E.accountNumber in (" + accountNumbers + ")"; + } + + } + + // entry book + EntryBook entryBook = financialTransactionSearch.getEntryBook(); + if (entryBook != null) { + query += " AND T." + FinancialTransaction.PROPERTY_ENTRY_BOOK + " = :entryBook"; + args.add("entryBook"); + args.add(entryBook); + } + + // amounts + String amount = financialTransactionSearch.getAmount(); + String amount2 = financialTransactionSearch.getAmount2(); + String operator = financialTransactionSearch.getOperator(); + FinancialStatementWayEnum fStWayEnum = financialTransactionSearch.getAmountWayEnum(); + if (amount != null) { + if (amount2 != null) { + BigDecimal value1 = new BigDecimal(amount); + BigDecimal value2 = new BigDecimal(amount2); + query += " AND :amount <= E.amount AND E.amount <= :amount2"; + args.add("amount"); + args.add(amount); + args.add("amount2"); + args.add(amount2); + } else if (operator != null) { + query += " AND E.amount " + operator + " :amount"; + args.add("amount"); + args.add(amount); + } + switch (fStWayEnum) { + case CREDIT: + query += " AND E.debit = false"; + break; + case DEBIT: + query += " AND E.debit = true"; + break; + } + } + + // perform query + List<FinancialTransaction> result = context.find(query, args.toArray()); + return result; + } + } //FinancialTransactionDAO Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/FiscalPeriodDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/FiscalPeriodDAOImpl.java 2012-05-28 08:33:31 UTC (rev 3431) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/FiscalPeriodDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -74,4 +74,43 @@ } return result; } + + /** + * Get last fiscal period (higher end date). + * + * @return last fiscal period + * @throws TopiaException + */ + public FiscalPeriod getLastFiscalPeriod() throws TopiaException { + String query = "FROM " + FiscalPeriod.class.getName() + + " ORDER BY endDate"; + + List<FiscalPeriod> fiscalPeriods = context.find(query); + FiscalPeriod result = null; + if (!fiscalPeriods.isEmpty()) { + result = fiscalPeriods.get(0); + } + + return result; + } + + /** + * Get last non locked fiscal period (higher end date). + * + * @return last fiscal period + * @throws TopiaException + */ + public FiscalPeriod getLastUnlockedFiscalPeriod() throws TopiaException { + String query = "FROM " + FiscalPeriod.class.getName() + + " WHERE locked = false" + + " ORDER BY endDate"; + + List<FiscalPeriod> fiscalPeriods = context.find(query); + FiscalPeriod result = null; + if (!fiscalPeriods.isEmpty()) { + result = fiscalPeriods.get(0); + } + + return result; + } } Added: trunk/lima-callao/src/main/java/org/chorem/lima/entity/VatStatementDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/VatStatementDAOImpl.java (rev 0) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/VatStatementDAOImpl.java 2012-05-30 10:33:35 UTC (rev 3432) @@ -0,0 +1,90 @@ +/* + * #%L + * Lima callao + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 CodeLutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package org.chorem.lima.entity; + +import java.util.List; + +import org.nuiton.topia.TopiaException; + + +/** + * Ajout de requetes specifiques aux {@code VatStatement} sur le DAO. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class VatStatementDAOImpl<E extends VatStatement> extends VatStatementDAOAbstract<VatStatement> { + + /** + * Find all {@code VatStatement} ordered by topia create date. + * @throws TopiaException + */ + public List<VatStatement> findAllOrderedByCreateDate() throws TopiaException { + String query = "FROM " + VatStatement.class.getName() + + " ORDER BY " + VatStatement.TOPIA_CREATE_DATE; + List<VatStatement> result = context.find(query); + return result; + } + + /** + * Get masterVatStatement children statement. + * + * @param masterVatStatement master VatStatement + * @return children VatStatement + * @throws TopiaException + */ + public List<VatStatement> getChildrenVatStatement(VatStatement masterVatStatement) throws TopiaException { + String query = "FROM " + VatStatement.class.getName() + + " WHERE masterVatStatement = :masterVatStatement" + + " ORDER BY " + VatStatement.TOPIA_CREATE_DATE; + List<VatStatement> result = context.find(query, "masterVatStatement", masterVatStatement); + return result; + } + + /** + * Recherche un statement par equivalence de label. + * + * TODO voir a quoi ca sert vraiment. + * + * @param label label + * @return statement like label + * @throws TopiaException + */ + public VatStatement findVatStatementByLabel(String label) throws TopiaException { + String query = "FROM " + VatStatement.class.getName() + + " WHERE label LIKE :label"; + List<VatStatement> statements = context.find(query, "label", "%" + label + "%"); + VatStatement result = null; + if (!statements.isEmpty()) { + result = statements.get(0); + } + return result; + } + +} //VatStatementDAO Property changes on: trunk/lima-callao/src/main/java/org/chorem/lima/entity/VatStatementDAOImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL