package br.com.centralit.citcorpore.ajaxForms;
import java.text.SimpleDateFormat;
import java.util.Collection;
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.IncidentesRelacionadosDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings("rawtypes")
public class IncidentesRelacionados extends AjaxFormAction {
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
IncidentesRelacionadosDTO incidenteARelacionar = (IncidentesRelacionadosDTO) document.getBean();
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
Collection<SolicitacaoServicoDTO> solicitacoesRelacionadas = solicitacaoServicoService.listSolicitacaoServicoRelacionada(incidenteARelacionar.getIdSolicitacaoIncRel());
StringBuilder script = new StringBuilder();
String html = this.montaHTMLResumoSolicitacoes(solicitacoesRelacionadas, script, request);
document.getElementById("tabelaIncidentesRelacionados").setInnerHTML(html);
document.executeScript(script.toString());
document.executeScript("temporizadorRel1.init()");
document.executeScript("$('#POPUP_menuIncidentesRelacionados').dialog('open');");
/**
* Quantitativo de Incidentes Relacionados
* @author thays.araujo
*/
Integer quantidadeIncidentesRelacionados;
String quantidadeIncidentesRelacionadosStr = "0";
if(solicitacoesRelacionadas!=null){
quantidadeIncidentesRelacionados = solicitacoesRelacionadas.size();
quantidadeIncidentesRelacionadosStr = String.valueOf(quantidadeIncidentesRelacionados);
document.getElementById("quantidadeIncidentesRelacionados").setValue(quantidadeIncidentesRelacionadosStr);
}
}
public void listarSolicitacoesServicoEmAndamento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
IncidentesRelacionadosDTO incidenteARelacionar = (IncidentesRelacionadosDTO) document.getBean();
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
Collection<SolicitacaoServicoDTO> listSolicitacaoServicoEmAndamento = solicitacaoServicoService.listSolicitacaoServicoEmAndamento(incidenteARelacionar.getIdSolicitacaoIncRel());
StringBuilder script = new StringBuilder();
String html = montaHTMLSolicitacoesServicoEmAndamento(listSolicitacaoServicoEmAndamento, script, request);
document.getElementById("divConteudoIncRel").setInnerHTML(html);
document.executeScript(script.toString());
document.executeScript("temporizadorRel2.init()");
}
public void relacionarIncidentes(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
IncidentesRelacionadosDTO incidenteRelacionadoDto = (IncidentesRelacionadosDTO) document.getBean();
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
boolean aux = false;
if (incidenteRelacionadoDto != null && incidenteRelacionadoDto.getFilhasAdicionar() != null) {
for (int i = 0; i < incidenteRelacionadoDto.getFilhasAdicionar().length; i++) {
System.out.println("Update: " + incidenteRelacionadoDto.getFilhasAdicionar()[i]);
solicitacaoServicoService.updateSolicitacaoPai(incidenteRelacionadoDto.getIdSolicitacaoIncRel(), incidenteRelacionadoDto.getFilhasAdicionar()[i]);
aux = true;
}
}
document.executeScript("$('#divSolicitacoesFilhas').dialog('close')");
document.executeScript("fecharModalListaRelacionarIncidentes()");
document.executeScript("document.getElementById('divConteudoIncRel').value = ''");
this.restore(document, request, response);
if (aux) {
document.alert(UtilI18N.internacionaliza(request, "gerenciaservico.incidentesrelacionados"));
}
}
private String montaHTMLResumoSolicitacoes(Collection<SolicitacaoServicoDTO> listSolicitacaoServicoRelacionada, StringBuilder script, HttpServletRequest request) {
StringBuilder html = new StringBuilder();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
html.append("<table class='table table-white table-bordered table-vertical-center table-pricing fontSize13' width='100%'");
html.append("<tr>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.numerosolicitacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.dataabertura") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.prazo") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.descricao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.resposta") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.horalimite") + "</th>");
html.append("<th class='center'>");
html.append("<span class='innerLR'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.temporestante")+"</span>");
html.append("<span class='glyphicons standard clock'><i></i></span>");
html.append("</th>");
html.append("</tr>");
if (listSolicitacaoServicoRelacionada != null && !listSolicitacaoServicoRelacionada.isEmpty()) {
for (SolicitacaoServicoDTO solicitacaoServicoRelacionada : listSolicitacaoServicoRelacionada) {
html.append("<tr>");
html.append("<hidden id='idSolicitante' value='" + solicitacaoServicoRelacionada.getIdSolicitante() + "'/>");
html.append("<hidden id='idResponsavel' value='" + solicitacaoServicoRelacionada.getIdResponsavel() + "'/>");
html.append("<td>" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "</td>");
if (solicitacaoServicoRelacionada.getDataHoraSolicitacao() != null) {
String horaLimitSTR = format.format(solicitacaoServicoRelacionada.getDataHoraSolicitacao());
html.append("<td id='dataHoraSolicitacao'>" + horaLimitSTR + "</td>");
}
html.append("<td>" + solicitacaoServicoRelacionada.getPrazoHH() + ":" + solicitacaoServicoRelacionada.getPrazoMM() + "</td>");
html.append("<td>" + solicitacaoServicoRelacionada.getDescricao() + "</td>");
if (solicitacaoServicoRelacionada.getResposta() != null && !solicitacaoServicoRelacionada.getResposta().equals("")) {
html.append("<td>" + solicitacaoServicoRelacionada.getResposta() + "</td>");
}else{
html.append("<td>" + "-" + "</td>");
}
if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("EmAndamento")){
html.append("<td>"+ UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.EmAndamento") + "</td>");
} else if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("Cancelada")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Cancelada") + "</td>");
} else if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("Suspensa")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Suspensa") +"</td>");
} else{
html.append("<td>" + solicitacaoServicoRelacionada.getSituacao() + "</td>");
}
if (solicitacaoServicoRelacionada.getDataHoraLimite() != null && !solicitacaoServicoRelacionada.getDataHoraLimite().equals("")) {
String horaLimitSTR = format.format(solicitacaoServicoRelacionada.getDataHoraLimite());
html.append("<td>" + horaLimitSTR + "</td>");
script.append("temporizadorRel1.addOuvinte(new Solicitacao('tempoRestanteRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "', " + "'barraProgressoRel1"
+ solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "', " + "'" + solicitacaoServicoRelacionada.getDataHoraSolicitacao() + "', '"
+ solicitacaoServicoRelacionada.getDataHoraLimite() + "'));");
html.append("<td><label id='tempoRestanteRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "'></label>");
html.append("<div id='barraProgressoRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "'></div></td>");
} else {
html.append("<td> </td>");
html.append("<td> </td>");
}
html.append("</tr>");
}
}
html.append("</table>");
return html.toString();
}
private String montaHTMLSolicitacoesServicoEmAndamento(Collection<SolicitacaoServicoDTO> resumo, StringBuilder script, HttpServletRequest request) {
StringBuilder html = new StringBuilder();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String horaSolicitacaoTR = "";
String horaLimitSTR = "";
html.append("<div class='row-fluid innerB'>");
html.append(" <div class='span12'>");
html.append(" <button type='button' class='btn btn-primary' onclick=\"document.formIncidentesRelacionados.fireEvent('relacionarIncidentes');\">" + UtilI18N.internacionaliza(request, "citcorpore.comum.relacionar") + "</button>");
html.append(" </div>");
html.append("</div>");
html.append("<div class='row-fluid'>");
html.append(" <div class='span12'>");
html.append("<table class='table table-white table-bordered table-vertical-center table-pricing fontSize13' width='100%'");
html.append("<tr>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.adicionar") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.numerosolicitacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.dataabertura") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.prazo") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.descricao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.resposta") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.situacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.horalimite") + "</th>");
html.append("<th class='center'>");
html.append("<span class='innerLR'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.temporestante")+"</span>");
html.append("<span class='glyphicons standard clock'><i></i></span>");
html.append("</th>");
html.append("</tr>");
/*
* Quando o idServico j� estiver sendo alimentado no restore de solicitacoes, incluir valida��o para que o servi�o carregado n�o seja mostrado na lista de incidentes orf�os.
*/
if (resumo != null) {
for (SolicitacaoServicoDTO r : resumo) {
html.append("<tr>");
html.append("<hidden id='idSolicitante' value='" + r.getIdSolicitante() + "'/>");
html.append("<hidden id='idResponsavel' value='" + r.getIdResponsavel() + "'/>");
html.append("<td class='center'><input type='checkbox' id='filhasAdicionar' name='filhasAdicionar' value='" + r.getIdSolicitacaoServico() + "' /> </td>");
html.append("<td>" + r.getIdSolicitacaoServico() + "</td>");
if (r.getDataHoraSolicitacao() != null && !r.getDataHoraSolicitacao().equals("")) {
horaSolicitacaoTR = format.format(r.getDataHoraSolicitacao());
html.append("<td id='dataHoraSolicitacao'>" + horaSolicitacaoTR + "</td>");
}else{
html.append("<td> </td>");
}
html.append("<td>" + r.getPrazoHH() + ":" + r.getPrazoMM() + "</td>");
html.append("<td>" + r.getDescricao() + "</td>");
html.append("<td>" + (r.getResposta() != null ? r.getResposta() : "-") + "</td>");
if(r.getSituacao().equalsIgnoreCase("EmAndamento")){
html.append("<td>"+ UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.EmAndamento") + "</td>");
} else if(r.getSituacao().equalsIgnoreCase("Cancelada")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Cancelada") + "</td>");
} else if(r.getSituacao().equalsIgnoreCase("Suspensa")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Suspensa") +"</td>");
} else{
html.append("<td>" + r.getSituacao() + "</td>");
}
if (r.getDataHoraLimite() != null && !r.getDataHoraLimite().equals("")) {
horaLimitSTR = format.format(r.getDataHoraLimite());
html.append("<td id='dataHoraSolicitacao'>" + horaLimitSTR + "</td>");
}else{
html.append("<td> </td>");
}
script.append("temporizadorRel2.addOuvinte(new Solicitacao('tempoRestanteRel2" + r.getIdSolicitacaoServico() + "', " + "'barraProgressoRel2" + r.getIdSolicitacaoServico() + "', "
+ "'" + r.getDataHoraSolicitacao() + "', '" + r.getDataHoraLimite() + "'));");
html.append("<td><label id='tempoRestanteRel2" + r.getIdSolicitacaoServico() + "'></label>");
html.append("<div id='barraProgressoRel2" + r.getIdSolicitacaoServico() + "'></div></td>");
html.append("</tr>");
}
}
html.append("</table>");
html.append(" </div>");
html.append("</div>");
return html.toString();
}
public void abrirListaDeSubSolicitacoes(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
IncidentesRelacionadosDTO incidenteARelacionar = (IncidentesRelacionadosDTO) document.getBean();
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
Collection<SolicitacaoServicoDTO> solicitacoesRelacionadas = solicitacaoServicoService.listSolicitacaoServicoRelacionada(incidenteARelacionar.getIdSolicitacaoIncRel());
StringBuilder script = new StringBuilder();
String html = this.gerarHtmlComListaSubSolicitacoes(solicitacoesRelacionadas, script, request);
document.getElementById("tabelaIncidentesRelacionados").setInnerHTML(html);
document.executeScript(script.toString());
document.executeScript("temporizadorRel1.init()");
document.executeScript("$('#formIncidentesRelacionados').dialog('open');");
}
private String gerarHtmlComListaSubSolicitacoes(Collection<SolicitacaoServicoDTO> listSolicitacaoServicoRelacionada, StringBuilder script, HttpServletRequest request) {
StringBuilder html = new StringBuilder();
html.append("<table class='table table-white table-bordered table-vertical-center table-pricing fontSize13 width='100%'");
html.append("<tr>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.numerosolicitacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.dataabertura") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.prazo") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.descricao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.resposta") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao") + "</th>");
html.append("<th class='center'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.horalimite") + "</th>");
html.append("<th class='center'>");
html.append("<span class='innerLR'>" + UtilI18N.internacionaliza(request, "solicitacaoServico.temporestante")+"</span>");
html.append("<span class='glyphicons standard clock'><i></i></span>");
html.append("</th>");
html.append("</tr>");
if (listSolicitacaoServicoRelacionada != null && !listSolicitacaoServicoRelacionada.isEmpty()) {
for (SolicitacaoServicoDTO solicitacaoServicoRelacionada : listSolicitacaoServicoRelacionada) {
html.append("<tr>");
html.append("<hidden id='idSolicitante' value='" + solicitacaoServicoRelacionada.getIdSolicitante() + "'/>");
html.append("<hidden id='idResponsavel' value='" + solicitacaoServicoRelacionada.getIdResponsavel() + "'/>");
html.append("<td style='text-align: center;'>" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "</td>");
html.append("<td id='dataHoraSolicitacao'>" + UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, solicitacaoServicoRelacionada.getDataHoraSolicitacao(), WebUtil.getLanguage(request)) + "</td>");
html.append("<td>" + solicitacaoServicoRelacionada.getPrazoHH() + ":" + solicitacaoServicoRelacionada.getPrazoMM() + "</td>");
html.append("<td>" + solicitacaoServicoRelacionada.getDescricao() + "</td>");
html.append("<td>" + (solicitacaoServicoRelacionada.getResposta() != null ? solicitacaoServicoRelacionada.getResposta() : "-") + "</td>");
if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("EmAndamento")){
html.append("<td>"+ UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.EmAndamento") + "</td>");
} else if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("Cancelada")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Cancelada") + "</td>");
} else if(solicitacaoServicoRelacionada.getSituacao().equalsIgnoreCase("Suspensa")){
html.append("<td>" + UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Suspensa") +"</td>");
} else{
html.append("<td>" + solicitacaoServicoRelacionada.getSituacao() + "</td>");
}
if (solicitacaoServicoRelacionada.getDataHoraLimite() != null) {
html.append("<td>" + UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, solicitacaoServicoRelacionada.getDataHoraLimite(), WebUtil.getLanguage(request)) + "</td>");
script.append("temporizadorRel1.addOuvinte(new Solicitacao('tempoRestanteRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "', " + "'barraProgressoRel1"
+ solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "', " + "'" + solicitacaoServicoRelacionada.getDataHoraSolicitacao() + "', '"
+ solicitacaoServicoRelacionada.getDataHoraLimite() + "'));");
html.append("<td><label id='tempoRestanteRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "'></label>");
html.append("<div id='barraProgressoRel1" + solicitacaoServicoRelacionada.getIdSolicitacaoServico() + "'></div></td>");
} else
html.append("<td> </td>");
html.append("</tr>");
}
}
html.append("</table>");
return html.toString();
}
@Override
public Class getBeanClass() {
return IncidentesRelacionadosDTO.class;
}
}