Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title> Gráficos com anuais</title>
  4. <meta charset='utf8'>
  5. <link href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.css" rel="stylesheet">
  6. <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
  7. </head>
  8. <body>
  9. <h1>Receita Líquida</h1>
  10. <div style="width: 600px; height:320px;">
  11. <canvas id="canvas_receita_liquida"></canvas>
  12. </div>
  13. <h1>Custos</h1>
  14. <div style="width: 600px; height:320px;">
  15. <canvas id="canvas_custo"></canvas>
  16. </div>
  17. <script>
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. dados = configuraDados(getDados('data'));
  26. montaGraficos(dados);
  27. //Criamos uma função com a criação do gráfico, para que possamos reutilizar o código.
  28. //informamos para a função via parametro qual é a div onde ficará o gráfico e qual o tipo de gráfico queremos gerar.
  29. //usaremos o tipo informado no lado php, para determinar qual query será executada
  30. function gerarGrafico(canvas, titulo, p_datasets){
  31. console.log(p_datasets);
  32. var myChart = new Chart(canvas, {
  33. type: 'bar',
  34. options: {
  35. title: {
  36. display: true,
  37. text: titulo,
  38. }
  39. },
  40. data: {
  41. labels: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro','Dezembro'],
  42. datasets: [...p_datasets],
  43. fill: false
  44. }
  45. });
  46. }
  47.  
  48. function config_dataset(plabel, pData){
  49. return {
  50. backgroundColor: 'rgba(0, 0, 0, 0.5)' ,
  51. borderColor: 'rgba(0, 0, 0, 0.5)',
  52. label: plabel,
  53. data: pData
  54. };
  55. }
  56.  
  57.  
  58.  
  59. function montaGraficos(dados)
  60. {
  61. dataSetArgumentos = [];
  62. var canvas_receita_liquida = document.getElementById('canvas_receita_liquida').getContext('2d');
  63. pDataset = config_dataset('Receita Liquida', dados.rec_liq);
  64. dataSetArgumentos.push(pDataset);
  65. gerarGrafico(canvas_receita_liquida, 'Receita Liquida', dataSetArgumentos);
  66.  
  67. dataSetArgumentos = [];
  68. var canvas_custo = document.getElementById('canvas_custo').getContext('2d');
  69. pDatasetCusto = config_dataset('Custo', dados.custo);
  70. pDatasetPesoCusto = config_dataset('Peso custo', dados.peso_custo);
  71. pDatasetPesoCusto.type = 'line';
  72. dataSetArgumentos.push(pDatasetCusto, pDatasetPesoCusto); ///= [pDatasetCusto, pDatasetPesoCusto];
  73. //console.log(dataSetArgumentos);
  74. gerarGrafico(canvas_custo, 'Custo', dataSetArgumentos);
  75.  
  76.  
  77. }
  78.  
  79. function getDados(info)
  80. {
  81. //var lista = [];
  82. let xhr = new XMLHttpRequest();
  83. xhr.open("POST", "php/graficos_anuais/graficos_anuais.php", false);
  84. xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  85. xhr.addEventListener("load", function()
  86. {
  87. if(xhr.status == 200)
  88. {
  89. lista = JSON.parse(xhr.responseText);
  90. }
  91. else
  92. console.log("não encontrou");
  93. });
  94. xhr.send(encodeURI("info=" + info));
  95.  
  96. return lista;
  97. }
  98.  
  99.  
  100. function configuraDados(dados_json){ // separa o json em arrays individuais para cada data-set;
  101.  
  102. let rec_liq = [];
  103. let custo = [];
  104. let peso_custo = [];
  105. let despesa = [];
  106. let peso_despesa = [];
  107. let lucro = [];
  108.  
  109. Object.entries(dados_json).forEach(([key, value]) =>
  110. {
  111. if(key.indexOf("rec_liq_") != -1)
  112. rec_liq.push(value);
  113. if(key.indexOf("custo_puro") != -1)
  114. custo.push(value);
  115. if(key.indexOf("peso_custo_") != -1)
  116. peso_custo.push(value);
  117. if(key.indexOf("despesa_pura") != -1)
  118. despesa.push(value);
  119. if(key.indexOf("peso_despesa_") != -1)
  120. peso_despesa.push(value);
  121. if(key.indexOf("lucro_") != -1)
  122. lucro.push(value);
  123. });
  124.  
  125. return {rec_liq:rec_liq, custo:custo, peso_custo:peso_custo, despesa:despesa, peso_despesa:peso_despesa, lucro:lucro };
  126. }
  127. </script>
  128. </body>
  129. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement