package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
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.citajax.html.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.AcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.AcordoNivelServicoHistoricoDTO;
import br.com.centralit.citcorpore.bean.ClienteDTO;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.ModeloEmailDTO;
import br.com.centralit.citcorpore.bean.PrioridadeAcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.PrioridadeServicoUsuarioDTO;
import br.com.centralit.citcorpore.bean.RequisitoSLADTO;
import br.com.centralit.citcorpore.bean.RevisarSlaDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.ServicoDTO;
import br.com.centralit.citcorpore.bean.SlaRequisitoSlaDTO;
import br.com.centralit.citcorpore.bean.TempoAcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.UnidadeDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.AcordoNivelServicoHistoricoDao;
import br.com.centralit.citcorpore.metainfo.complementos.ComplementoSLA_Grupos;
import br.com.centralit.citcorpore.metainfo.complementos.ComplementoSLA_Prioridade;
import br.com.centralit.citcorpore.metainfo.complementos.ComplementoSLA_TempoAuto;
import br.com.centralit.citcorpore.negocio.AcordoNivelServicoService;
import br.com.centralit.citcorpore.negocio.ClienteService;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.negocio.ModeloEmailService;
import br.com.centralit.citcorpore.negocio.PrioridadeAcordoNivelServicoService;
import br.com.centralit.citcorpore.negocio.PrioridadeServicoUsuarioService;
import br.com.centralit.citcorpore.negocio.RequisitoSLAService;
import br.com.centralit.citcorpore.negocio.RevisarSlaService;
import br.com.centralit.citcorpore.negocio.ServicoContratoService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.negocio.SlaRequisitoSlaService;
import br.com.centralit.citcorpore.negocio.TempoAcordoNivelServicoService;
import br.com.centralit.citcorpore.negocio.UnidadeService;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.centralit.citgerencial.util.Util;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.Reflexao;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilHTML;
import br.com.citframework.util.UtilHashMaps;
import br.com.citframework.util.UtilI18N;
/**
* Classe que representa o form do Cadastro de Acordos de N�vel de Servi�o Geral
*
* @author rodrigo.oliveira
*
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class AcordoNivelServico extends AjaxFormAction {
private ComplementoSLA_TempoAuto complementoSLA_TempoAuto;
private ComplementoSLA_Prioridade complementoSLA_Prioridade;
private ComplementoSLA_Grupos complementoSLA_Grupos;
private AcordoNivelServicoService acordoNivelServicoService;
private PrioridadeAcordoNivelServicoService prioridadeAcordoNivelServicoService;
private PrioridadeServicoUsuarioService prioridadeServicoUsuarioService;
private SlaRequisitoSlaService slaRequisitoSlaService;
private RevisarSlaService revisarSlaService;
private TempoAcordoNivelServicoService tempoAcordoNivelServicoService;
private UnidadeService unidadeService;
private EmpregadoService empregadoService;
private RequisitoSLAService requisitoSLAService;
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuarioDto = WebUtil.getUsuario(request);
if (usuarioDto == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
String idrequisito = request.getParameter("idRequisitoSla");
String assunto = request.getParameter("assunto");
if (idrequisito != null && assunto != null) {
document.executeScript("insereRowRequisitoSLA(" + idrequisito + ", '" + assunto + "', '" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, new Date(), WebUtil.getLanguage(request)) + "');");
}
// M�todo para montar as grids da parte inferior
mostraContratoClienteSLA(document, request, response);
mostraContratoAnoSLA(document, request, response);
mostraContratoTerceiroSLA(document, request, response);
mostraHistoricoAuditoriaSLA(document, request, response);
montaTelaTempoAuto(document, request, response);
preencheComboPrioridadAuto(document, request, response);
preencheComboGrupo(document, request, response);
preencheComboEmails(document, request, response);
alimentaCamposIniciais(document);
}
@Override
public Class getBeanClass() {
return AcordoNivelServicoDTO.class;
}
private void alimentaCamposIniciais(DocumentHTML document) throws Exception {
document.executeScript("$('#pertmiteMudarImpUrgN').attr('checked',true)");
document.executeScript("$('#situacaoAtivo').attr('checked',true)");
document.executeScript("document.getElementById('impacto').options[0].selected = 'selected'");
document.executeScript("document.getElementById('urgencia').options[0].selected = 'selected'");
document.executeScript("document.getElementById('tipo').options[0].selected = 'selected'");
document.executeScript("avaliaTipoSLA()");
valoresPadroes(document);
}
private void valoresPadroes(DocumentHTML document) throws Exception {
for (int i = 1; i <= 5; i++) {
if (document.getElementById("HH-1-" + i).getValue() == null)
document.getElementById("HH-1-" + i).setValue("0");
if (document.getElementById("HH-2-" + i).getValue() == null)
document.getElementById("HH-2-" + i).setValue("0");
if (document.getElementById("MM-1-" + i).getValue() == null)
document.getElementById("MM-1-" + i).setValue("0");
if (document.getElementById("MM-2-" + i).getValue() == null)
document.getElementById("MM-2-" + i).setValue("0");
}
}
/**
* Limpa formul�rio.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void limpar(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.load(document, request, response);
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
Integer[] hhCaptura = new Integer[5];
Integer[] hhResolucao = new Integer[5];
Integer[] mmCaptura = new Integer[5];
Integer[] mmResolucao = new Integer[5];
for (int i = 1; i <= 5; i++) {
hhCaptura[i - 1] = 0;
hhResolucao[i - 1] = 0;
mmCaptura[i - 1] = 0;
mmResolucao[i - 1] = 0;
try {
hhCaptura[i - 1] = new Integer((String) document.getValuesForm().get("HH-1-" + i));
acordoNivelServicoDTO.setHhCaptura(hhCaptura);
} catch (Exception e) {
}
try {
hhResolucao[i - 1] = new Integer((String) document.getValuesForm().get("HH-2-" + i));
acordoNivelServicoDTO.setHhResolucao(hhResolucao);
} catch (Exception e) {
}
try {
mmCaptura[i - 1] = new Integer((String) document.getValuesForm().get("MM-1-" + i));
acordoNivelServicoDTO.setMmCaptura(mmCaptura);
} catch (Exception e) {
}
try {
mmResolucao[i - 1] = new Integer((String) document.getValuesForm().get("MM-2-" + i));
acordoNivelServicoDTO.setMmResolucao(mmResolucao);
} catch (Exception e) {
}
}
// Preenche dados do hist�rico
AcordoNivelServicoHistoricoDTO acordoNivelServicoHistoricoDTO = new AcordoNivelServicoHistoricoDTO();
UsuarioDTO usuarioDto = WebUtil.getUsuario(request);
Reflexao.copyPropertyValues(acordoNivelServicoDTO, acordoNivelServicoHistoricoDTO);
acordoNivelServicoHistoricoDTO.setCriadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoHistoricoDTO.setModificadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoHistoricoDTO.setCriadoPor(usuarioDto.getNomeUsuario());
acordoNivelServicoHistoricoDTO.setModificadoPor(usuarioDto.getNomeUsuario());
acordoNivelServicoHistoricoDTO.setConteudodados(UtilHashMaps.generateString(document.getValuesForm()));
// Deserializando PrioridadeUnidade
List<PrioridadeAcordoNivelServicoDTO> listaPrioridadeUnidadeSLA = ((ArrayList<PrioridadeAcordoNivelServicoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
PrioridadeAcordoNivelServicoDTO.class, "prioridadeUnidadeSerializados", request));
if (listaPrioridadeUnidadeSLA != null) {
acordoNivelServicoDTO.setListaPrioridadeUnidade(listaPrioridadeUnidadeSLA);
}
// Deserializando PrioridadeUsuario
List<PrioridadeServicoUsuarioDTO> listaPrioridadeUsuarioSLA = ((ArrayList<PrioridadeServicoUsuarioDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
PrioridadeServicoUsuarioDTO.class, "prioridadeUsuarioSerializados", request));
if (listaPrioridadeUsuarioSLA != null) {
acordoNivelServicoDTO.setListaPrioridadeUsuario(listaPrioridadeUsuarioSLA);
}
// Deserializando RequisitosSLA
List<SlaRequisitoSlaDTO> listaSlaRequisitoSLA = ((ArrayList<SlaRequisitoSlaDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(SlaRequisitoSlaDTO.class,
"requisitoSlaSerializados", request));
if (listaSlaRequisitoSLA != null) {
acordoNivelServicoDTO.setListaSlaRequisitoSlaDTO(listaSlaRequisitoSLA);
}
// Deserializando RevisarSLA
List<RevisarSlaDTO> listaRevisarSLA = ((ArrayList<RevisarSlaDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(RevisarSlaDTO.class, "revisarSlaSerializados", request));
if (listaRevisarSLA != null) {
acordoNivelServicoDTO.setListaRevisarSlaDTO(listaRevisarSLA);
}
if (acordoNivelServicoDTO.getIdAcordoNivelServico() != null) {
try {
// Preenche informa��es
acordoNivelServicoDTO.setModificadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoDTO.setModificadoPor(usuarioDto.getNomeUsuario());
// Atualiza Acordo
getAcordoNivelServicoService().update(acordoNivelServicoDTO, acordoNivelServicoHistoricoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
document.executeScript("limpar()");
HTMLForm form = document.getForm("form");
form.clear();
} catch (Exception e) {
document.alert(UtilI18N.internacionaliza(request, "MSE02"));
e.printStackTrace();
} finally {
document.executeScript("fechar_aguarde()");
}
} else {
try {
// Preenche informa��es
acordoNivelServicoDTO.setCriadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoDTO.setModificadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoDTO.setCriadoPor(usuarioDto.getNomeUsuario());
acordoNivelServicoDTO.setModificadoPor(usuarioDto.getNomeUsuario());
// Cria Acordo
getAcordoNivelServicoService().create(acordoNivelServicoDTO, acordoNivelServicoHistoricoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
document.executeScript("limpar()");
HTMLForm form = document.getForm("form");
form.clear();
} catch (Exception e) {
document.alert(UtilI18N.internacionaliza(request, "MSE02"));
e.printStackTrace();
} finally {
document.executeScript("fechar_aguarde()");
}
}
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
document.getJanelaPopupById("JANELA_AGUARDE_MENU").show();
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
acordoNivelServicoDTO = (AcordoNivelServicoDTO) getAcordoNivelServicoService().restore(acordoNivelServicoDTO);
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(acordoNivelServicoDTO);
document.executeScript("deleteAllRowsPrioridadeUnidade()");
document.executeScript("deleteAllRowsPrioridadeUsuario()");
document.executeScript("deleteAllRowsRequisitoSLA()");
document.executeScript("deleteAllRowsRevisarSLA()");
Integer idAcordoNivelServico = acordoNivelServicoDTO.getIdAcordoNivelServico();
if (idAcordoNivelServico != null) {
for (int i = 1; i <= 5; i++) {
Collection colAux1 = getTempoAcordoNivelServicoService().findByIdAcordoAndFaseAndIdPrioridade(idAcordoNivelServico.intValue(), 1, i);
if (colAux1 != null && colAux1.size() > 0) {
TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = (TempoAcordoNivelServicoDTO) ((List) colAux1).get(0);
document.getElementById("HH-1-" + i).setValue(tempoAcordoNivelServicoDTO.getTempoHH().toString());
document.getElementById("MM-1-" + i).setValue(tempoAcordoNivelServicoDTO.getTempoMM().toString());
}
colAux1 = getTempoAcordoNivelServicoService().findByIdAcordoAndFaseAndIdPrioridade(idAcordoNivelServico.intValue(), 2, i);
if (colAux1 != null && colAux1.size() > 0) {
TempoAcordoNivelServicoDTO tempoAcordoNivelServicoDTO = (TempoAcordoNivelServicoDTO) ((List) colAux1).get(0);
document.getElementById("HH-2-" + i).setValue(tempoAcordoNivelServicoDTO.getTempoHH().toString());
document.getElementById("MM-2-" + i).setValue(tempoAcordoNivelServicoDTO.getTempoMM().toString());
}
}
List<PrioridadeAcordoNivelServicoDTO> listAcordoNivelServicoDTOs = (List<PrioridadeAcordoNivelServicoDTO>) getAcordoPrioridadeAcordoNivelServicoService().findByIdAcordoNivelServico(
idAcordoNivelServico);
if (listAcordoNivelServicoDTOs != null && !listAcordoNivelServicoDTOs.isEmpty()) {
for (PrioridadeAcordoNivelServicoDTO prioridadeAcordoNivelServicoDTO : listAcordoNivelServicoDTOs) {
if (prioridadeAcordoNivelServicoDTO.getIdUnidade() != null && prioridadeAcordoNivelServicoDTO.getDataFim() == null) {
UnidadeDTO unidadeDTO = new UnidadeDTO();
List<UnidadeDTO> listaUnidadeDTOs = (List<UnidadeDTO>) getUnidadeService().findById(prioridadeAcordoNivelServicoDTO.getIdUnidade());
if (listaUnidadeDTOs != null) {
unidadeDTO = listaUnidadeDTOs.get(0);
}
document.executeScript("insereRowUnidade(" + prioridadeAcordoNivelServicoDTO.getIdUnidade() + ", '" + unidadeDTO.getNome() + "', "
+ prioridadeAcordoNivelServicoDTO.getIdPrioridade() + ");");
}
}
}
List<PrioridadeServicoUsuarioDTO> lisPrioridadeServicoUsuarioDTOs = (List<PrioridadeServicoUsuarioDTO>) getPrioridadeServicoUsuarioService().findByIdAcordoNivelServico(
idAcordoNivelServico);
if (lisPrioridadeServicoUsuarioDTOs != null && !lisPrioridadeServicoUsuarioDTOs.isEmpty()) {
for (PrioridadeServicoUsuarioDTO prioridadeServicoUsuarioDTO : lisPrioridadeServicoUsuarioDTOs) {
if (prioridadeServicoUsuarioDTO.getIdUsuario() != null && prioridadeServicoUsuarioDTO.getDataFim() == null) {
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
empregadoDTO = getEmpregadoService().restoreByIdEmpregado(prioridadeServicoUsuarioDTO.getIdUsuario());
document.executeScript("insereRowUsuario(" + prioridadeServicoUsuarioDTO.getIdUsuario() + ", '" + empregadoDTO.getNome() + "', "
+ prioridadeServicoUsuarioDTO.getIdPrioridade() + ");");
}
}
}
List<SlaRequisitoSlaDTO> listSlaRequisitoSlaDTOs = (List<SlaRequisitoSlaDTO>) getSlaRequisitoSlaService().findByIdAcordoNivelServico(idAcordoNivelServico);
if (listSlaRequisitoSlaDTOs != null && !listSlaRequisitoSlaDTOs.isEmpty()) {
for (SlaRequisitoSlaDTO slaRequisitoSlaDTO : listSlaRequisitoSlaDTOs) {
if (slaRequisitoSlaDTO.getIdAcordoNivelServico() != null) {
RequisitoSLADTO requisitoSLADTO = new RequisitoSLADTO();
List<RequisitoSLADTO> listaRequisitoSLADTOs = (List<RequisitoSLADTO>) getRequisitoSLAService().findById(slaRequisitoSlaDTO.getIdRequisitoSLA());
if (listaRequisitoSLADTOs != null && !listaRequisitoSLADTOs.isEmpty()) {
requisitoSLADTO = listaRequisitoSLADTOs.get(0);
}
if (slaRequisitoSlaDTO.getDeleted() == null || !slaRequisitoSlaDTO.getDeleted().equalsIgnoreCase("y") && requisitoSLADTO.getAssunto()!= null) {
document.executeScript("insereRowRequisitoSLA(" + slaRequisitoSlaDTO.getIdRequisitoSLA() + ", '" + requisitoSLADTO.getAssunto() + "', '"
+ UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, slaRequisitoSlaDTO.getDataVinculacao(), WebUtil.getLanguage(request))+ "');");
}
}
}
}
List<RevisarSlaDTO> lisRevisarSlaDTOs = (List<RevisarSlaDTO>) getRevisarSlaService().findByIdAcordoNivelServico(idAcordoNivelServico);
if (lisRevisarSlaDTOs != null && !lisRevisarSlaDTOs.isEmpty()) {
for (RevisarSlaDTO revisarSlaDTO : lisRevisarSlaDTOs) {
if (revisarSlaDTO.getIdAcordoNivelServico() != null) {
if (revisarSlaDTO.getDeleted() == null || !revisarSlaDTO.getDeleted().equalsIgnoreCase("y")) {
document.executeScript("insereRevisarSLARow('" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, revisarSlaDTO.getDataRevisao(), WebUtil.getLanguage(request)) + "', '" + revisarSlaDTO.getDetalheRevisao() + "', '" + revisarSlaDTO.getObservacao() + "');");
}
}
}
}
if (acordoNivelServicoDTO.getIdPrioridadeAuto1() != null) {
document.getElementById("IDPRIORIDADEAUTO1").setValue(acordoNivelServicoDTO.getIdPrioridadeAuto1().toString());
}
if (acordoNivelServicoDTO.getIdGrupo1() != null) {
document.getElementById("IDGRUPO1").setValue(acordoNivelServicoDTO.getIdGrupo1().toString());
}
if (acordoNivelServicoDTO.getIdEmail() != null) {
document.getElementById("idEmail").setValue(acordoNivelServicoDTO.getIdEmail().toString());
}
if (acordoNivelServicoDTO.getTempoAuto() != null) {
document.getElementById("TEMPOAUTO").setValue(Util.formatMoney(acordoNivelServicoDTO.getTempoAuto(), "###,###,##0.00"));
}
}
// M�todo para montar as grids da parte inferior
mostraContratoClienteSLA(document, request, response);
mostraContratoAnoSLA(document, request, response);
mostraContratoTerceiroSLA(document, request, response);
mostraHistoricoAuditoriaSLA(document, request, response);
valoresPadroes(document);
document.executeScript("avaliaTipoSLA()");
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
public void excluir(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
UsuarioDTO usuarioDto = WebUtil.getUsuario(request);
try {
// Preenche informa��es
acordoNivelServicoDTO.setModificadoEm(UtilDatas.getDataHoraAtual());
acordoNivelServicoDTO.setModificadoPor(usuarioDto.getNomeUsuario());
// Exclui acordos
getAcordoNivelServicoService().excluir(acordoNivelServicoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
document.executeScript("limpar()");
HTMLForm form = document.getForm("form");
form.clear();
} catch (Exception e) {
document.alert(UtilI18N.internacionaliza(request, "MSE02"));
e.printStackTrace();
} finally {
document.executeScript("fechar_aguarde()");
}
}
private void preencheComboPrioridadAuto(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String resp = getComplementoSLA_Prioridade().execute(null, request, response);
HTMLSelect combo = (HTMLSelect) document.getSelectById("IDPRIORIDADEAUTO1");
combo.removeAllOptions();
combo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
combo.setInnerHTML(resp);
}
private void preencheComboGrupo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String resp = getComplementoSLA_Grupos().execute(null, request, response);
HTMLSelect combo = (HTMLSelect) document.getSelectById("IDGRUPO1");
combo.removeAllOptions();
combo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
combo.setInnerHTML(resp);
}
private void preencheComboEmails(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HTMLSelect combo = (HTMLSelect) document.getSelectById("idEmail");
combo.removeAllOptions();
combo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
ModeloEmailService modeloEmailService = (ModeloEmailService) ServiceLocator.getInstance().getService(ModeloEmailService.class, null);
List<ModeloEmailDTO> listaEmails = (List<ModeloEmailDTO>) modeloEmailService.getAtivos();
if (listaEmails != null) {
for (ModeloEmailDTO lista : listaEmails) {
combo.addOption(lista.getIdModeloEmail().toString(), lista.getTitulo());
}
}
}
private void montaTelaTempoAuto(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String resp = getComplementoSLA_TempoAuto().execute(null, request, response);
document.getElementById("divTempoAuto").setInnerHTML(resp);
}
/**
* M�todo para exibir o hist�rio de contrato SLA
*
* @throws Exception
*/
public void mostraContratoClienteSLA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
String resp = montaGridContratoVincSLA(request, response, acordoNivelServicoDTO.getIdAcordoNivelServico(), "C");
document.getElementById("contratoVincCliente").setInnerHTML(resp);
}
/**
* M�todo para exibir o hist�rio de Ano SLA
*
* @throws Exception
*/
public void mostraContratoAnoSLA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
String resp = montaGridContratoVincSLA(request, response, acordoNivelServicoDTO.getIdAcordoNivelServico(), "A");
document.getElementById("contratoVincAno").setInnerHTML(resp);
}
/**
* M�todo para exibir o hist�rio de Terceiros SLA
*
* @throws Exception
*/
public void mostraContratoTerceiroSLA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
String resp = montaGridContratoVincSLA(request, response, acordoNivelServicoDTO.getIdAcordoNivelServico(), "U");
document.getElementById("contratoVincTerceiro").setInnerHTML(resp);
}
/**
* M�todo para exibir o hist�rio de Auditoria SLA
*
* @throws Exception
*/
public void mostraHistoricoAuditoriaSLA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
AcordoNivelServicoDTO acordoNivelServicoDTO = (AcordoNivelServicoDTO) document.getBean();
String resp = montaGridHistoricoAuditoriaSLA(request, response, acordoNivelServicoDTO.getIdAcordoNivelServico());
document.getElementById("historicoAuditoria").setInnerHTML(resp);
}
private String montaGridContratoVincSLA(HttpServletRequest request, HttpServletResponse response, Integer idAcordoNivelServico, String tipoContrato) throws Exception {
String out = "";
try {
if (idAcordoNivelServico == null) {
idAcordoNivelServico = 0;
}
StringBuilder strTable = new StringBuilder();
strTable.append("<table width='100%'>").append("<tr>").append("<td style='border:1px solid black'>").append(" ").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.contrato.numero")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilI18N.internacionaliza(request, "sla.contrato.data") + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilI18N.internacionaliza(request, "sla.contrato.cliente") + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilI18N.internacionaliza(request, "sla.contrato.fornecedor") + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.contrato.situacao")) + "</b>").append("</td>").append("</tr>");
if (idAcordoNivelServico.intValue() > 0) {
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, null);
FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null);
List lstContratosCliente = (List) contratoService.listByIdAcordoNivelServicoAndTipo(idAcordoNivelServico.intValue(), tipoContrato);
if (lstContratosCliente != null) {
for (Iterator it = lstContratosCliente.iterator(); it.hasNext();) {
ContratoDTO contratoDTO = (ContratoDTO) it.next();
String nomeCliente = "";
String nomeFornecedor = "";
ClienteDTO clientDto = new ClienteDTO();
clientDto.setIdCliente(contratoDTO.getIdCliente());
clientDto = (ClienteDTO) clienteService.restore(clientDto);
if (clientDto != null) {
nomeCliente = clientDto.getNomeRazaoSocial();
}
FornecedorDTO fornecedorDto = new FornecedorDTO();
fornecedorDto.setIdFornecedor(contratoDTO.getIdFornecedor());
fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto);
if (fornecedorDto != null) {
nomeFornecedor = fornecedorDto.getRazaoSocial();
}
String situacao = contratoDTO.getSituacao();
if (situacao.equalsIgnoreCase("A")) {
situacao = UtilI18N.internacionaliza(request, "sla.contrato.ativo");
} else if (situacao.equalsIgnoreCase("F")) {
situacao = UtilI18N.internacionaliza(request, "sla.contrato.finalizado");
} else if (situacao.equalsIgnoreCase("C")) {
situacao = UtilI18N.internacionaliza(request, "sla.contrato.cancelado");
} else if (situacao.equalsIgnoreCase("P")) {
situacao = UtilI18N.internacionaliza(request, "sla.contrato.paralisado");
}
strTable.append("<tr>")
.append("<td style='border:1px solid black'>")
.append("<img id='img_tr_" + contratoDTO.getIdContrato() + "_" + tipoContrato + "' src='" + Constantes.getValue("SERVER_ADDRESS")
+ Constantes.getValue("CONTEXTO_APLICACAO") + "/imagens/mais.jpg' border='0' onclick=\"abreFechaMaisMenos(this, 'tr_" + contratoDTO.getIdContrato() + "_"
+ tipoContrato + "')\"/>").append("</td>").append("<td style='border:1px solid black'>").append(contratoDTO.getNumero()).append("</td>")
.append("<td style='border:1px solid black'>").append(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, contratoDTO.getDataContrato(), WebUtil.getLanguage(request))).append("</td>").append("<td style='border:1px solid black'>")
.append(UtilHTML.encodeHTML(nomeCliente)).append("</td>").append("<td style='border:1px solid black'>").append(UtilHTML.encodeHTML(nomeFornecedor)).append("</td>")
.append("<td style='border:1px solid black'>").append(situacao).append("</td>").append("</tr>");
Collection colServicos = servicoContratoService.findByIdContrato(contratoDTO.getIdContrato());
if (colServicos != null && colServicos.size() > 0) {
strTable.append("<tr>").append("<td colspan='6' style='border:1px solid black'>")
.append("<div id='tr_" + contratoDTO.getIdContrato() + "_" + tipoContrato + "' style='display:none'>").append("<table width='100%'>").append("<tr>")
.append("<td colspan='2'>").append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.servicosdocontrato")) + "</b>").append("</td>")
.append("</tr>");
for (Iterator itServ = colServicos.iterator(); itServ.hasNext();) {
ServicoContratoDTO servContratoDto = (ServicoContratoDTO) itServ.next();
if ((servContratoDto.getDataFim() == null || UtilDatas.getDataAtual().before(servContratoDto.getDataFim()))
&& (servContratoDto.getDeleted() == null || servContratoDto.getDeleted().equalsIgnoreCase("n"))) {
ServicoDTO servicoDto = new ServicoDTO();
servicoDto.setIdServico(servContratoDto.getIdServico());
servicoDto = (ServicoDTO) servicoService.restore(servicoDto);
if (servicoDto != null) {
strTable.append("<tr>").append("<td>")
.append("<img src='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/imagens/seta_link1.gif' border='0'/>")
.append("</td>").append("<td>").append(UtilHTML.encodeHTML(servicoDto.getNomeServico())).append("</td>").append("</tr>");
}
}
}
strTable.append("</table>").append("</div>").append("</td>").append("</tr>");
}
}
}
}
strTable.append("</table>");
out = strTable.toString();
} catch (Exception eX) {
eX.printStackTrace();
}
response.setContentType("text/html; charset=UTF-8");
return out;
}
private String montaGridHistoricoAuditoriaSLA(HttpServletRequest request, HttpServletResponse response, Integer idAcordoNivelServico) throws Exception {
String out = "";
StringBuilder strTable = new StringBuilder();
try {
if (idAcordoNivelServico == null) {
idAcordoNivelServico = 0;
}
strTable.append("<table width='100%'>").append("<tr>").append("<td style='border:1px solid black'>").append(" ").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.titulo")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.datainicio")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.datafim")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.avaliarem")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.situacao")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.modificadoPor")) + "</b>").append("</td>").append("<td style='border:1px solid black'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.modificadoEm")) + "</b>").append("</td>").append("</tr>");
if (idAcordoNivelServico.intValue() > 0) {
AcordoNivelServicoHistoricoDao acordoNivelServicoHistoricoDao = new AcordoNivelServicoHistoricoDao();
Collection col = acordoNivelServicoHistoricoDao.findByIdAcordoNivelServico(idAcordoNivelServico.intValue());
if (col != null) {
for (Iterator it = col.iterator(); it.hasNext();) {
AcordoNivelServicoHistoricoDTO acordoNivelServicoHistoricoDTO = (AcordoNivelServicoHistoricoDTO) it.next();
strTable.append("<tr>")
.append("<td style='border:1px solid black'>")
.append("<img id='img_trHISTSLA_" + acordoNivelServicoHistoricoDTO.getIdAcordoNivelServico_Hist() + "' src='" + Constantes.getValue("SERVER_ADDRESS")
+ Constantes.getValue("CONTEXTO_APLICACAO") + "/imagens/mais.jpg' border='0' onclick=\"abreFechaMaisMenos(this, 'trHISTSLA_"
+ acordoNivelServicoHistoricoDTO.getIdAcordoNivelServico_Hist() + "')\"/>").append("</td>").append("<td style='border:1px solid black'>")
.append("" + UtilHTML.encodeHTML(acordoNivelServicoHistoricoDTO.getTituloSLA()) + "").append("</td>").append("<td style='border:1px solid black'>")
.append("" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, acordoNivelServicoHistoricoDTO.getDataInicio(), WebUtil.getLanguage(request)) + "").append("</td>").append("<td style='border:1px solid black'>");
if (acordoNivelServicoHistoricoDTO.getDataFim() != null) {
strTable.append("" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, acordoNivelServicoHistoricoDTO.getDataFim(), WebUtil.getLanguage(request)) + "");
} else {
strTable.append(" ");
}
strTable.append("</td>").append("<td style='border:1px solid black'>").append("" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, acordoNivelServicoHistoricoDTO.getAvaliarEm(), WebUtil.getLanguage(request)) + "").append("</td>")
.append("<td style='border:1px solid black'>");
String situacao = acordoNivelServicoHistoricoDTO.getSituacao();
if (acordoNivelServicoHistoricoDTO.getSituacao().equalsIgnoreCase("A")) {
situacao = UtilI18N.internacionaliza(request, "sla.ativo");
}
if (acordoNivelServicoHistoricoDTO.getSituacao().equalsIgnoreCase("I")) {
situacao = UtilI18N.internacionaliza(request, "sla.inativo");
}
strTable.append("" + UtilHTML.encodeHTML(situacao) + "").append("</td>").append("<td style='border:1px solid black'>")
.append("" + UtilHTML.encodeHTML(acordoNivelServicoHistoricoDTO.getModificadoPor()) + "").append("</td>").append("<td style='border:1px solid black'>")
.append("" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, acordoNivelServicoHistoricoDTO.getModificadoEm(), WebUtil.getLanguage(request)) + "").append("</td>").append("</tr>")
.append("<tr>").append("<td colspan='8' style='border:1px solid black'>")
.append("<div id='trHISTSLA_" + acordoNivelServicoHistoricoDTO.getIdAcordoNivelServico_Hist() + "' style='display:none'>").append("<table width='100%'>")
.append("<tr>").append("<td colspan='2'>").append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.descricao")) + "</b>").append("</td>")
.append("</tr>").append("<tr>").append("<td colspan='2'>").append("" + UtilHTML.encodeHTML(acordoNivelServicoHistoricoDTO.getDescricaoSLA()) + "").append("</td>")
.append("</tr>").append("<tr>").append("<td colspan='2'>").append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.escopo")) + "</b>")
.append("</td>").append("</tr>").append("<tr>").append("<td colspan='2'>").append("" + UtilHTML.encodeHTML(acordoNivelServicoHistoricoDTO.getEscopoSLA()) + "")
.append("</td>").append("</tr>").append("<tr>").append("<td colspan='2'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.tipoeprioridade")) + "</b>").append("</td>").append("</tr>").append("<tr>")
.append("<td colspan='2'>");
String tipo = acordoNivelServicoHistoricoDTO.getTipo();
if (acordoNivelServicoHistoricoDTO.getTipo().equalsIgnoreCase("D")) {
tipo = UtilI18N.internacionaliza(request, "sla.tipo.disponibilidade");
}
if (acordoNivelServicoHistoricoDTO.getTipo().equalsIgnoreCase("T")) {
tipo = UtilI18N.internacionaliza(request, "sla.tipo.tempo");
}
if (acordoNivelServicoHistoricoDTO.getTipo().equalsIgnoreCase("V")) {
tipo = UtilI18N.internacionaliza(request, "sla.tipo.outros");
}
String prioridade = "";
if (acordoNivelServicoHistoricoDTO.getIdPrioridadePadrao() != null) {
prioridade = ", " + acordoNivelServicoHistoricoDTO.getIdPrioridadePadrao();
}
strTable.append("" + UtilHTML.encodeHTML(tipo) + " " + prioridade).append("</td>").append("</tr>").append("<tr>").append("<td colspan='2'>")
.append("<b>" + UtilHTML.encodeHTML(UtilI18N.internacionaliza(request, "sla.dadoslog")) + "</b>").append("</td>").append("</tr>").append("<tr>")
.append("<td colspan='2'>");
if (acordoNivelServicoHistoricoDTO.getConteudodados() != null) {
strTable.append(acordoNivelServicoHistoricoDTO.getConteudodados().replaceAll("\n", "<br>"));
} else {
strTable.append(" ");
}
strTable.append("</td>").append("</tr>").append("</table>").append("</div>").append("</td>").append("</tr>");
}
}
}
strTable.append("</table>");
response.setContentType("text/html; charset=UTF-8");
out = strTable.toString();
} catch (Exception e) {
e.printStackTrace();
}
return out;
}
// public void enviaEmail(Integer idModeloEmail, DocumentHTML document) throws Exception {
//
// SolicitacaoServicoDTO solicitacaoDto = (SolicitacaoServicoDTO) document.getBean();
// MensagemEmail mensagem = new MensagemEmail(idModeloEmail, new IDto[] {solicitacaoDto});
// try {
// mensagem.envia(solicitacaoDto.getEmailcontato(), solicitacaoDto.getNome(), solicitacaoDto.getNome());
// } catch (Exception e) {
// }
// }
public ComplementoSLA_TempoAuto getComplementoSLA_TempoAuto() {
if (complementoSLA_TempoAuto == null) {
return new ComplementoSLA_TempoAuto();
} else {
return complementoSLA_TempoAuto;
}
}
public ComplementoSLA_Prioridade getComplementoSLA_Prioridade() {
if (complementoSLA_Prioridade == null) {
return new ComplementoSLA_Prioridade();
} else {
return complementoSLA_Prioridade;
}
}
public ComplementoSLA_Grupos getComplementoSLA_Grupos() {
if (complementoSLA_Grupos == null) {
return new ComplementoSLA_Grupos();
} else {
return complementoSLA_Grupos;
}
}
public AcordoNivelServicoService getAcordoNivelServicoService() throws ServiceException, Exception {
if (acordoNivelServicoService == null) {
return (AcordoNivelServicoService) ServiceLocator.getInstance().getService(AcordoNivelServicoService.class, null);
} else {
return acordoNivelServicoService;
}
}
public PrioridadeAcordoNivelServicoService getAcordoPrioridadeAcordoNivelServicoService() throws ServiceException, Exception {
if (prioridadeAcordoNivelServicoService == null) {
return (PrioridadeAcordoNivelServicoService) ServiceLocator.getInstance().getService(PrioridadeAcordoNivelServicoService.class, null);
} else {
return prioridadeAcordoNivelServicoService;
}
}
public TempoAcordoNivelServicoService getTempoAcordoNivelServicoService() throws ServiceException, Exception {
if (tempoAcordoNivelServicoService == null) {
return (TempoAcordoNivelServicoService) ServiceLocator.getInstance().getService(TempoAcordoNivelServicoService.class, null);
} else {
return tempoAcordoNivelServicoService;
}
}
public PrioridadeServicoUsuarioService getPrioridadeServicoUsuarioService() throws ServiceException, Exception {
if (prioridadeServicoUsuarioService == null) {
return (PrioridadeServicoUsuarioService) ServiceLocator.getInstance().getService(PrioridadeServicoUsuarioService.class, null);
} else {
return prioridadeServicoUsuarioService;
}
}
public SlaRequisitoSlaService getSlaRequisitoSlaService() throws ServiceException, Exception {
if (slaRequisitoSlaService == null) {
return (SlaRequisitoSlaService) ServiceLocator.getInstance().getService(SlaRequisitoSlaService.class, null);
} else {
return slaRequisitoSlaService;
}
}
public RevisarSlaService getRevisarSlaService() throws ServiceException, Exception {
if (revisarSlaService == null) {
return (RevisarSlaService) ServiceLocator.getInstance().getService(RevisarSlaService.class, null);
} else {
return revisarSlaService;
}
}
public UnidadeService getUnidadeService() throws ServiceException, Exception {
if (unidadeService == null) {
return (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
} else {
return unidadeService;
}
}
public RequisitoSLAService getRequisitoSLAService() throws ServiceException, Exception {
if (requisitoSLAService == null) {
return (RequisitoSLAService) ServiceLocator.getInstance().getService(RequisitoSLAService.class, null);
} else {
return requisitoSLAService;
}
}
public EmpregadoService getEmpregadoService() throws ServiceException, Exception {
if (empregadoService == null) {
return (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
} else {
return empregadoService;
}
}
}