/**
*
*/
package br.com.centralit.citcorpore.ajaxForms;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citcorpore.bean.GraficoPizzaDTO;
import br.com.centralit.citcorpore.bean.GraficosDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.negocio.GraficosService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
/**
* @author breno.guimaraes
*
*/
public class Graficos extends AjaxFormAction{
private GraficosService getService() throws ServiceException, Exception {
return (GraficosService) ServiceLocator.getInstance().getService(GraficosService.class, null);
}
@Override
public Class getBeanClass() {
return GraficosDTO.class;
}
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
public void renderizaGraficos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ArrayList<GraficoPizzaDTO> graficos = getService().getRelatorioPorSituacao();
ArrayList<GraficoPizzaDTO> graficos2 = getService().getRelatorioPorNomeCategoria();
ArrayList<GraficoPizzaDTO> graficos3 = getService().getRelatorioPorGrupo();
String script = getScriptGrafico(graficos, "chart1");
if (script != null && !script.equalsIgnoreCase("")){
document.executeScript(script);
}
script = getScriptGrafico(graficos2, "chart2");
if (script != null && !script.equalsIgnoreCase("")){
document.executeScript(script);
}
script = getScriptGrafico(graficos3, "chart3");
if (script != null && !script.equalsIgnoreCase("")){
document.executeScript(script);
}
String buffer = "<b>INCIDENTES COM QUEBRA DE SLA</b>";
buffer += "<table>";
buffer += "<tr>";
buffer += "<td class='linhaSubtituloGridOcorr'>";
buffer += "N�mero";
buffer += "</td>";
buffer += "<td class='linhaSubtituloGridOcorr'>";
buffer += "Data/hora solicita��o";
buffer += "</td>";
buffer += "<td class='linhaSubtituloGridOcorr'>";
buffer += "Data/hora limite";
buffer += "</td>";
buffer += "<td class='linhaSubtituloGridOcorr'>";
buffer += "Atraso";
buffer += "</td>";
buffer += "</tr>";
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
Collection listaSolicitacaoServico = solicitacaoServicoService.listIncidentesNaoFinalizados();
if (listaSolicitacaoServico != null){
for (Iterator it = listaSolicitacaoServico.iterator(); it.hasNext();){
SolicitacaoServicoDTO solicitacao = (SolicitacaoServicoDTO)it.next();
if (solicitacao.getDataHoraLimite() != null && solicitacao.getDataHoraLimite().before(UtilDatas.getDataHoraAtual())){
solicitacao = solicitacaoServicoService.verificaSituacaoSLA(solicitacao);
buffer += "<tr>";
buffer += "<td class='celulaGridPesq'>";
buffer += "" + solicitacao.getIdSolicitacaoServico();
buffer += "</td>";
buffer += "<td class='celulaGridPesq'>";
buffer += "" + formataDataHora(solicitacao.getDataHoraSolicitacao());
buffer += "</td>";
buffer += "<td class='celulaGridPesq'>";
buffer += "" + formataDataHora(solicitacao.getDataHoraLimite());
buffer += "</td>";
buffer += "<td class='celulaGridPesq'>";
buffer += "" + solicitacao.getAtrasoSLAStr();
buffer += "</td>";
buffer += "</tr>";
}
}
}
buffer += "</table>";
document.getElementById("paiChart4").setInnerHTML(buffer);
}
private String getScriptGrafico(ArrayList<GraficoPizzaDTO> graficos, String componenteDestino){
if (graficos == null || graficos.size() == 0){
return "";
}
StringBuilder sb = new StringBuilder();
sb.append("plotaGrafico(");
sb.append("[");
boolean prim = true;
for (GraficoPizzaDTO g : graficos) {
if (!prim){
sb.append(",");
}
sb.append("['" + g.getCampo() + "', " + g.getValor()+ "]");
prim = false;
}
sb.append("]");
sb.append(", '" + componenteDestino + "');");
return sb.toString();
}
private String formataDataHora(Timestamp dateDate){
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return df.format(dateDate);
}
}