99 lines
4.0 KiB
Plaintext
Executable File
99 lines
4.0 KiB
Plaintext
Executable File
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<Map<String, Object>> 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<Map<String, Object>>
|
|
* @throws Exception
|
|
*/
|
|
private List<Map<String, Object>> fillData(QueryRequest pQueryRequest) throws Exception {
|
|
List<Map<String, Object>> lData = new ArrayList<Map<String, Object>>();
|
|
List<TgeneTransactionPages> lPages = this.getTgeneTransactionPages(pQueryRequest.getTransactionModule(),
|
|
pQueryRequest.getTransactionCode(), pQueryRequest.getTransactionVersion());
|
|
for (TgeneTransactionPages tgeneTransactionPages : lPages) {
|
|
Map<String, Object> m = new HashMap<String, Object>();
|
|
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<TgeneTransactionPages>
|
|
* @throws Exception
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
private List<TgeneTransactionPages> getTgeneTransactionPages(String pModule, Integer pTransaction, Integer pVersion) throws Exception {
|
|
List<TgeneTransactionPages> 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 ";
|
|
}
|