Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package afelps.livraria.viewhelper;
- import java.io.IOException;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import afelps.livraria.dao.DAOCategoria;
- import afelps.livraria.dao.DAOQuery;
- import afelps.livraria.dominio.Categoria;
- import afelps.livraria.dominio.EntidadeDominio;
- import afelps.livraria.dominio.Query;
- import afelps.livraria.util.DateConverter;
- import afelps.livraria.util.Resultado;
- public class ViewHelperADMRelatorioCatTempo implements IViewHelper{
- Map<String, Map<String, Integer>> grafico;
- ArrayList<String> categorias;
- ArrayList<String> tempos;
- ArrayList<Integer> vendas;
- public EntidadeDominio getEntidade(HttpServletRequest request) {
- grafico = new HashMap<String, Map<String, Integer>>();
- categorias = new ArrayList<String>();
- tempos = new ArrayList<String>();
- vendas = new ArrayList<Integer>();
- DAOCategoria daocategoria = new DAOCategoria();
- Categoria categoria = new Categoria(null);
- List<EntidadeDominio> lista = daocategoria.Consultar(categoria);
- for(EntidadeDominio ed : lista)
- {
- Categoria c = (Categoria) ed;
- categorias.add(c.getNome());
- }
- DAOQuery daoquery = new DAOQuery();
- Query query = new Query(null);
- Calendar cal = Calendar.getInstance();
- cal.set(Calendar.DAY_OF_MONTH, 1);
- cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1);
- Date minimo = cal.getTime();
- Date maximo = cal.getTime();
- try{
- daoquery.open();
- ResultSet rs;
- for(int i = 0; i <= 12; i++)
- {
- maximo = minimo;
- cal.add(Calendar.MONTH, -1);
- minimo = cal.getTime();
- query.setQuery(
- "select categoria_nome, count(categoria_id) as qtdVenda, pedido_data_compra from tbl_categoria "+
- "inner join tbl_livro on livro_categoria = categoria_id "+
- "inner join tbl_pedido_livro on pedido_livro_livro = livro_id "+
- "inner join tbl_pedido on pedido_livro_pedido = pedido_id "+
- "where pedido_data_compra between '"+DateConverter.converteDateSQL(minimo)+
- "' and '"+DateConverter.converteDateSQL(maximo)+"' "+
- "group by categoria_nome;"
- );
- query = (Query) daoquery.Consultar(query).get(0);
- rs = query.getRs();
- Map<String, Integer> map = new HashMap<String, Integer>();
- while(rs.next())
- {
- map.put(rs.getString("categoria_nome"), rs.getInt("qtdVenda"));
- }
- System.out.println("month = "+cal.get(Calendar.MONTH) + " | " + String.format("%02d", cal.get(Calendar.MONTH)+1));
- grafico.put(String.format("%02d", cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR), map);
- tempos.add(String.format("%02d", cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR));
- }
- daoquery.close();
- }catch(SQLException e)
- {
- e.printStackTrace();
- }
- return null;
- }
- public void setView(Resultado resultado, HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
- String saida = "data.addColumn('string', 'Tempo');\n";
- for(String categoria : categorias)
- {
- saida += "data.addColumn('number', '"+categoria+"')\n";
- }
- saida += "data.addRows([\n";
- for(String tempo : tempos)
- {
- saida+="['"+tempo+"'";
- for(int i = 0; i < categorias.size(); i++)
- {
- int numero = 0;
- if(grafico.get(tempo).get(categorias.get(i)) != null)
- numero = grafico.get(tempo).get(categorias.get(i));
- saida+=", "+numero;
- }
- saida+="],\n";
- }
- saida+="]);\n";
- System.out.println("SAIDA: \n"+saida);
- request.setAttribute("saidaGrafico", saida);
- request.setAttribute("nomeGrafico", "Vendas de Categorias por Mês");
- request.getRequestDispatcher("/JSP/ADMRelatorio.jsp").forward(request, response);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement