%@page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%
String familia = request.getParameter("cod");
String linha = null;
boolean passouFamilia = false;
if (familia != null && familia.length() > 1) {
request.setAttribute("cod", familia);
linha = familia.substring(0, 2);
request.setAttribute("linha", linha);
String grupo = familia.substring(2, 5);
request.setAttribute("grupoSelecionado", grupo);
passouFamilia = true;
}
String superLinha = request.getParameter("superLinha");
boolean isSuperLinha = false;
if (superLinha != null && superLinha.length() > 1) {
request.setAttribute("superLinha", superLinha);
isSuperLinha = true;
} else {
request.setAttribute("superLinha", "false");
}
//request.setAttribute("qtdeItens", new Integer(10));
request.setAttribute("qtdeItens", new Integer(12));
int qtdeItens = 12;
String offset = request.getParameter("pager.offset");
if (offset != null) {
request.setAttribute("queryOffset", new Integer(offset));
} else {
request.setAttribute("queryOffset", new Integer(0));
}
String ordenar = request.getParameter("ord");
if (ordenar == null) {
ordenar = "descricao";
}
request.setAttribute("ordenar", ordenar);
String classOrdTitulo = "on";
String classOrdPreco = "off";
String classOrdEditora = "off";
if (ordenar.equalsIgnoreCase("preco")) {
classOrdPreco = "on";
} else if (ordenar.equalsIgnoreCase("editora")) {
classOrdEditora = "on";
} else {
classOrdTitulo = "on";
}
// **************** construcao da query
StringBuffer query = new StringBuffer();
query.append("SELECT p.cod_material, p.descricao, p.preco, p.preco_promocional, p.tem_icone,")
.append("p.item_promocional, p.id_editora, f.familia as familia, ")
.append("IF(preco_promocional > 0,IF(preco > preco_promocional,preco_promocional,preco),preco) as preco_ordem ");
StringBuffer queryTotal = new StringBuffer();
if (!passouFamilia && !isSuperLinha) {
query.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append(" WHERE ")
.append("p.status = 'L' AND p.publicado = 'S' AND ")
.append("fp.cod_material = p.cod_material AND ")
.append("f.familia = fp.familia AND ")
.append("e.id_editora = p.id_editora ")
.append("GROUP BY p.cod_material ");
queryTotal.append("SELECT count(distinct p.cod_material) as qtde ")
.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append("WHERE f.familia = fp.familia AND ")
.append("p.cod_material = fp.cod_material AND ")
.append("e.id_editora = p.id_editora AND ")
.append("p.status = 'L' AND p.publicado = 'S' ");
} else if (isSuperLinha) {
query.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append(" WHERE ")
.append("f.linha = ? AND ")
.append("f.familia = fp.familia AND ")
.append("p.cod_material = fp.cod_material AND ")
.append("e.id_editora = p.id_editora AND ")
.append("p.status = 'L' AND p.publicado = 'S' ")
.append("GROUP BY p.cod_material ");
queryTotal.append("SELECT count(distinct p.cod_material) as qtde ")
.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append("WHERE ")
.append("f.linha = ? AND ")
.append("f.familia = fp.familia AND ")
.append("p.cod_material = fp.cod_material AND ")
.append("e.id_editora = p.id_editora AND ")
.append("p.status = 'L' AND p.publicado = 'S' ");
} else {
query.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append(" WHERE ")
.append("f.linha = ? AND f.grupo = ? AND ")
.append("f.familia = fp.familia AND ")
.append("p.cod_material = fp.cod_material AND ")
.append("e.id_editora = p.id_editora AND ")
.append("p.status = 'L' AND p.publicado = 'S' ")
.append("GROUP BY p.cod_material ");
queryTotal.append("SELECT count(distinct p.cod_material) as qtde ")
.append("FROM produto p, familia_produto fp, familia f, editora e ")
.append("WHERE ")
.append("f.linha = ? AND f.grupo = ? AND ")
.append("f.familia = fp.familia AND ")
.append("p.cod_material = fp.cod_material AND ")
.append("e.id_editora = p.id_editora AND ")
.append("p.status = 'L' AND p.publicado = 'S' ");
}
// estabelesce a ordem
if (ordenar.equalsIgnoreCase("preco")) {
query.append("ORDER BY preco_ordem ").append("LIMIT ?,?");
} else if (ordenar.equalsIgnoreCase("editora")) {
query.append("ORDER BY e.descricao ").append("LIMIT ?,?");
} else {
query.append("ORDER BY p.descricao ").append("LIMIT ?,?");
}
request.setAttribute("query", query.toString());
request.setAttribute("queryTotal", queryTotal.toString());
%>