Advertisement
Guest User

Untitled

a guest
May 25th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. package afelps.livraria.viewhelper;
  2.  
  3. import java.io.IOException;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.ArrayList;
  7. import java.util.Calendar;
  8. import java.util.Date;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12.  
  13. import javax.servlet.ServletException;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16.  
  17. import afelps.livraria.dao.DAOCategoria;
  18. import afelps.livraria.dao.DAOQuery;
  19. import afelps.livraria.dominio.Categoria;
  20. import afelps.livraria.dominio.EntidadeDominio;
  21. import afelps.livraria.dominio.Query;
  22. import afelps.livraria.util.DateConverter;
  23. import afelps.livraria.util.Resultado;
  24.  
  25. public class ViewHelperADMRelatorioCatTempo implements IViewHelper{
  26.  
  27. Map<String, Map<String, Integer>> grafico;
  28. ArrayList<String> categorias;
  29. ArrayList<String> tempos;
  30. ArrayList<Integer> vendas;
  31.  
  32. public EntidadeDominio getEntidade(HttpServletRequest request) {
  33. grafico = new HashMap<String, Map<String, Integer>>();
  34. categorias = new ArrayList<String>();
  35. tempos = new ArrayList<String>();
  36. vendas = new ArrayList<Integer>();
  37. DAOCategoria daocategoria = new DAOCategoria();
  38. Categoria categoria = new Categoria(null);
  39. List<EntidadeDominio> lista = daocategoria.Consultar(categoria);
  40. for(EntidadeDominio ed : lista)
  41. {
  42. Categoria c = (Categoria) ed;
  43. categorias.add(c.getNome());
  44. }
  45. DAOQuery daoquery = new DAOQuery();
  46. Query query = new Query(null);
  47.  
  48. Calendar cal = Calendar.getInstance();
  49. cal.set(Calendar.DAY_OF_MONTH, 1);
  50. cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1);
  51. Date minimo = cal.getTime();
  52. Date maximo = cal.getTime();
  53.  
  54. try{
  55. daoquery.open();
  56. ResultSet rs;
  57. for(int i = 0; i <= 12; i++)
  58. {
  59. maximo = minimo;
  60. cal.add(Calendar.MONTH, -1);
  61. minimo = cal.getTime();
  62.  
  63. query.setQuery(
  64. "select categoria_nome, count(categoria_id) as qtdVenda, pedido_data_compra from tbl_categoria "+
  65. "inner join tbl_livro on livro_categoria = categoria_id "+
  66. "inner join tbl_pedido_livro on pedido_livro_livro = livro_id "+
  67. "inner join tbl_pedido on pedido_livro_pedido = pedido_id "+
  68. "where pedido_data_compra between '"+DateConverter.converteDateSQL(minimo)+
  69. "' and '"+DateConverter.converteDateSQL(maximo)+"' "+
  70. "group by categoria_nome;"
  71. );
  72.  
  73. query = (Query) daoquery.Consultar(query).get(0);
  74. rs = query.getRs();
  75. Map<String, Integer> map = new HashMap<String, Integer>();
  76. while(rs.next())
  77. {
  78. map.put(rs.getString("categoria_nome"), rs.getInt("qtdVenda"));
  79. }
  80. System.out.println("month = "+cal.get(Calendar.MONTH) + " | " + String.format("%02d", cal.get(Calendar.MONTH)+1));
  81. grafico.put(String.format("%02d", cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR), map);
  82. tempos.add(String.format("%02d", cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR));
  83. }
  84. daoquery.close();
  85. }catch(SQLException e)
  86. {
  87. e.printStackTrace();
  88. }
  89. return null;
  90. }
  91.  
  92. public void setView(Resultado resultado, HttpServletRequest request, HttpServletResponse response)
  93. throws IOException, ServletException {
  94.  
  95. String saida = "data.addColumn('string', 'Tempo');\n";
  96. for(String categoria : categorias)
  97. {
  98. saida += "data.addColumn('number', '"+categoria+"')\n";
  99. }
  100. saida += "data.addRows([\n";
  101. for(String tempo : tempos)
  102. {
  103. saida+="['"+tempo+"'";
  104. for(int i = 0; i < categorias.size(); i++)
  105. {
  106. int numero = 0;
  107. if(grafico.get(tempo).get(categorias.get(i)) != null)
  108. numero = grafico.get(tempo).get(categorias.get(i));
  109. saida+=", "+numero;
  110. }
  111. saida+="],\n";
  112. }
  113. saida+="]);\n";
  114. System.out.println("SAIDA: \n"+saida);
  115. request.setAttribute("saidaGrafico", saida);
  116. request.setAttribute("nomeGrafico", "Vendas de Categorias por Mês");
  117. request.getRequestDispatcher("/JSP/ADMRelatorio.jsp").forward(request, response);
  118.  
  119.  
  120. }
  121.  
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement