package com.fp.general.rules.query.trans.panel; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fp.persistence.commondb.HqlStatement; import com.fp.dto.Response; import com.fp.dto.query.QueryRequest; import com.fp.dto.rules.QueryRule; import com.fp.persistence.pgeneral.page.TgeneTransactionPages; /** * Clase que se encarga de entregar una lista con las paginas a contruir paneles dinamicamente * en la pantalla. * @author Jorge Vaca * @version 2.1 */ public class TransactionPanels extends QueryRule { private String filterTitle; /** * Metodo que obtiene saldos promedio de una cuenta a la vista. * @param pQueryRequest Datos de entrada de la consulta. */ public QueryRequest process(QueryRequest pQueryRequest) throws Exception { Response response = pQueryRequest.getResponse(); this.filterTitle = (String) pQueryRequest.get("filterTitle"); List> lData = this.fillData(pQueryRequest); response.put("TRANSPANELS", lData); return pQueryRequest; } /** * Metodo que llena una lista de paginas asociadas a una transaccion. * @param pQueryRequest Datos del request. * @return List> * @throws Exception */ private List> fillData(QueryRequest pQueryRequest) throws Exception { List> lData = new ArrayList>(); List lPages = this.getTgeneTransactionPages(pQueryRequest.getTransactionModule(), pQueryRequest.getTransactionCode(), pQueryRequest.getTransactionVersion()); for (TgeneTransactionPages tgeneTransactionPages : lPages) { Map m = new HashMap(); m.put("cod", tgeneTransactionPages.getPk().getSequence()); m.put("t", tgeneTransactionPages.getTitle()); m.put("p", tgeneTransactionPages.getPage()); m.put("q", tgeneTransactionPages.getQueryfunction()); m.put("s", tgeneTransactionPages.getSavefunction()); m.put("d", "N"); m.put("down", tgeneTransactionPages.getAutodownload()); lData.add(m); } lPages = null; return lData; } /** * Metodo que entrega una lista de paginas a asociar en paneles en paginas. * @param pModule Codigo de modulo. * @param pTransaction Codigo de transaccion. * @param pVersion Version de la transaccion. * @return List * @throws Exception */ @SuppressWarnings("unchecked") private List getTgeneTransactionPages(String pModule, Integer pTransaction, Integer pVersion) throws Exception { List lData = null; String sentence = null; if (this.filterTitle != null) { sentence = HQL_HEADER + " and title " + this.filterTitle + " " + HQL_FOOTER; } else { sentence = HQL_HEADER + HQL_FOOTER; } HqlStatement hql = new HqlStatement(sentence); hql.setString("module", pModule); hql.setInteger("transaction", pTransaction); hql.setInteger("version", pVersion); lData = hql.execute().getResultList(); return lData; } /** * Sentencia cabecera que entrega las paginas asociadas a una transaccion. */ private static final String HQL_HEADER = " from TgeneTransactionPages t " + " where t.pk.transactionmodule = :module" + " and t.pk.transactioncode = :transaction" + " and t.pk.transactionversion = :version" + " and coalesce(t.active,'N') = 'Y'"; /** * Sentencia cabecera que entrega las paginas asociadas a una transaccion. */ private static final String HQL_FOOTER = " order by t.presentationorder "; }