maia_modificado/.svn/pristine/ae/ae80cd9deeb76a966f235a93ff2...

91 lines
3.9 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.common.helper.BeanManager;
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.TgeneSubproductPages;
/**
* Clase que se encarga de entregar una lista con las paginas a contruir paneles dinamicamente
* en la pantalla por subproducto.
* @author Jorge Vaca
* @version 2.1
*/
public class ProductPanels extends QueryRule {
/**
* 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();
List<Map<String, Object>> lData = this.fillData(pQueryRequest);
response.put("PRODUCTPANELS", lData);
return pQueryRequest;
}
/**
* Metodo que llena una lista con las paginas asociadas a un producto, 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<TgeneSubproductPages> lPages = this.getTgeneSubproductPages(pQueryRequest);
for (TgeneSubproductPages tgeneSubproductPages : lPages) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("cod", tgeneSubproductPages.getPk().getSequence());
m.put("t", tgeneSubproductPages.getTitle());
m.put("p", tgeneSubproductPages.getPage());
m.put("q", tgeneSubproductPages.getQueryfunction());
m.put("s", tgeneSubproductPages.getSavefunction());
m.put("d", "N");
m.put("down", tgeneSubproductPages.getAutodownload());
lData.add(m);
}
lPages = null;
return lData;
}
/**
* Metodo que entrega una lista de paginas a asociar en paneles en paginas.
* @param pQueryRequest Datos del request.
* @return List<TgeneSubproductPages>
* @throws Exception
*/
@SuppressWarnings("unchecked")
private List<TgeneSubproductPages> getTgeneSubproductPages(QueryRequest pQueryRequest) throws Exception {
List<TgeneSubproductPages> lData = null;
HqlStatement hql = new HqlStatement(HQL);
hql.setString("module", (String) BeanManager.convertObject(pQueryRequest.get("module"), String.class));
hql.setString("product", (String) BeanManager.convertObject(pQueryRequest.get("product"), String.class));
hql.setString("subproduct", (String) BeanManager.convertObject(pQueryRequest.get("subproduct"), String.class));
hql.setString("tmodule", pQueryRequest.getTransactionModule());
hql.setInteger("tcode", pQueryRequest.getTransactionCode());
hql.setInteger("tversion", pQueryRequest.getTransactionVersion());
lData = hql.execute().getResultList();
return lData;
}
/**
* Sentencia que entrega las paginas asociadas a un modulo, producto tipo.
*/
private static final String HQL =
" from TgeneSubproductPages t "
+ " where t.pk.modulecode = :module "
+ " and t.pk.productcode = :product "
+ " and t.pk.subproductcode = :subproduct "
+ " and t.pk.transactionmodule = :tmodule "
+ " and t.pk.transactioncode = :tcode "
+ " and t.pk.transactionversion = :tversion "
+ " and coalesce(t.active,'N') = 'Y' "
+ " order by t.presentationorder ";
}