package br.com.centralit.citcorpore.ajaxForms;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.htmlparser.jericho.Source;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import br.com.centralit.bpm.dto.TarefaFluxoDTO;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLCheckbox;
import br.com.centralit.citajax.html.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.CalendarioDTO;
import br.com.centralit.citcorpore.bean.CategoriaOcorrenciaDTO;
import br.com.centralit.citcorpore.bean.CategoriaProblemaDTO;
import br.com.centralit.citcorpore.bean.CausaIncidenteDTO;
import br.com.centralit.citcorpore.bean.ClienteDTO;
import br.com.centralit.citcorpore.bean.ConhecimentoProblemaDTO;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.ContratosGruposDTO;
import br.com.centralit.citcorpore.bean.EmailSolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.JustificativaProblemaDTO;
import br.com.centralit.citcorpore.bean.LocalidadeDTO;
import br.com.centralit.citcorpore.bean.LocalidadeUnidadeDTO;
import br.com.centralit.citcorpore.bean.OcorrenciaProblemaDTO;
import br.com.centralit.citcorpore.bean.OrigemAtendimentoDTO;
import br.com.centralit.citcorpore.bean.OrigemOcorrenciaDTO;
import br.com.centralit.citcorpore.bean.PastaDTO;
import br.com.centralit.citcorpore.bean.ProblemaDTO;
import br.com.centralit.citcorpore.bean.ProblemaItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ProblemaMudancaDTO;
import br.com.centralit.citcorpore.bean.ProblemaRelacionadoDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.ServicoDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoProblemaDTO;
import br.com.centralit.citcorpore.bean.SolucaoContornoDTO;
import br.com.centralit.citcorpore.bean.SolucaoDefinitivaDTO;
import br.com.centralit.citcorpore.bean.TemplateSolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.UnidadeDTO;
import br.com.centralit.citcorpore.bean.UnidadesAccServicosDTO;
import br.com.centralit.citcorpore.bean.UploadDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.OcorrenciaProblemaDAO;
import br.com.centralit.citcorpore.mail.MensagemEmail;
import br.com.centralit.citcorpore.negocio.CalendarioService;
import br.com.centralit.citcorpore.negocio.CategoriaProblemaService;
import br.com.centralit.citcorpore.negocio.CategoriaSolucaoService;
import br.com.centralit.citcorpore.negocio.CausaIncidenteService;
import br.com.centralit.citcorpore.negocio.ClienteService;
import br.com.centralit.citcorpore.negocio.ConhecimentoProblemaService;
import br.com.centralit.citcorpore.negocio.ContatoProblemaService;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.ContratosGruposService;
import br.com.centralit.citcorpore.negocio.EmailSolicitacaoServicoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.ExecucaoProblemaService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.negocio.GrupoService;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.JustificativaProblemaService;
import br.com.centralit.citcorpore.negocio.LocalidadeService;
import br.com.centralit.citcorpore.negocio.LocalidadeUnidadeService;
import br.com.centralit.citcorpore.negocio.OcorrenciaProblemaService;
import br.com.centralit.citcorpore.negocio.OrigemAtendimentoService;
import br.com.centralit.citcorpore.negocio.PastaService;
import br.com.centralit.citcorpore.negocio.ProblemaItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.ProblemaMudancaService;
import br.com.centralit.citcorpore.negocio.ProblemaService;
import br.com.centralit.citcorpore.negocio.RequisicaoMudancaService;
import br.com.centralit.citcorpore.negocio.ServicoContratoService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoProblemaService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.centralit.citcorpore.negocio.SolucaoContornoService;
import br.com.centralit.citcorpore.negocio.SolucaoDefinitivaService;
import br.com.centralit.citcorpore.negocio.TemplateSolicitacaoServicoService;
import br.com.centralit.citcorpore.negocio.UnidadeService;
import br.com.centralit.citcorpore.negocio.UnidadesAccServicosService;
import br.com.centralit.citcorpore.negocio.UsuarioService;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoRequisicaoProblema;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.Enumerados.TipoOrigemLeituraEmail;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citged.bean.ControleGEDDTO;
import br.com.centralit.citged.negocio.ControleGEDService;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilHTML;
import br.com.citframework.util.UtilI18N;
import br.com.citframework.util.UtilStrings;
import br.com.citframework.util.WebUtil;
/**
* @author breno.guimaraes
*
*/
@SuppressWarnings({ "rawtypes", "unused", "unchecked" })
public class Problema extends AjaxFormAction {
private ProblemaService problemaService;
private EmpregadoService usuarioService;
private CategoriaProblemaService categoriaProblemaService;
private ProblemaItemConfiguracaoService problemaItemConfiguracaoService;
private ItemConfiguracaoService itemConfiguracaoService;
private PastaService pastaService;
private SolicitacaoServicoProblemaService solicitacaoServicoProblemaService;
private UsuarioDTO usuario;
private ProblemaMudancaService problemaMudancaService;
private RequisicaoMudancaService requisicaoMudancaService;
ContratoDTO contratoDtoAux = new ContratoDTO();
private ProblemaDTO problemaDto;
private Boolean acao = false;
@Override
public Class getBeanClass() {
return ProblemaDTO.class;
}
public ProblemaDTO getProblemaDto() {
return problemaDto;
}
public void setProblemaDto(ProblemaDTO problemaDto) {
this.problemaDto = problemaDto;
}
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String UNIDADE_AUTOCOMPLETE = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.UNIDADE_AUTOCOMPLETE, "N");
StringBuilder objeto;
if ((UNIDADE_AUTOCOMPLETE != null) && (UNIDADE_AUTOCOMPLETE.equalsIgnoreCase("S"))) {
objeto = new StringBuilder();
objeto.append("<select id='idContrato' name='idContrato' class='Valid[Required] Description[\"contrato.contrato\"]' ");
objeto.append("onchange='setaValorLookup(this);'>");
objeto.append("</select>");
document.getElementById("divContrato").setInnerHTML(objeto.toString());
objeto = new StringBuilder();
objeto.append("<input type='text' name='unidadeDes' id='unidadeDes' style='width: 100%;' onkeypress='onkeypressUnidadeDes();'>");
objeto.append("<input type='hidden' name='idUnidade' id='idUnidade' value='0'/>");
document.getElementById("divUnidade").setInnerHTML(objeto.toString());
document.executeScript("montaParametrosAutocompleteUnidade()");
} else {
objeto = new StringBuilder();
objeto.append("<select id='idContrato' name='idContrato' class='Valid[Required] Description[\"contrato.contrato\"]' ");
objeto.append("onchange='setaValorLookup(this);' onclick= 'document.form.fireEvent(\"carregaUnidade\");'>");
objeto.append("</select>");
document.getElementById("divContrato").setInnerHTML(objeto.toString());
objeto = new StringBuilder();
objeto.append("<select name='idUnidade' id = 'idUnidade' onchange='document.form.fireEvent(\"preencherComboLocalidade\")' class='Valid[Required] Description[colaborador.cadastroUnidade]'></select>");
document.getElementById("divUnidade").setInnerHTML(objeto.toString());
}
/**
* Adicionado para fazer limpeza da se��o quando for gerenciamento de Servi�o
*
* @author mario.junior
* @since 28/10/2013 08:21
*/
request.getSession(true).setAttribute("colUploadRequisicaoProblemaGED", null);
problemaDto = (ProblemaDTO) document.getBean();
document.executeScript("$('#abas').hide()");
document.executeScript("$('#statusProblema').hide()");
document.executeScript("$('#divResolvido').hide()");
// document.executeScript("$('#relacionarErrosConhecidos').hide()");
// document.executeScript("$('#abaMudancas').hide()");
// document.executeScript("$('#abaRevisaoProblemaGrave').hide()");
// document.executeScript("$('#divProblemaGrave').hide()");
// document.executeScript("$('#divPrecisaMudanca').hide()");
// document.executeScript("$('#divPrecisaSolucaoContorno').hide()");
document.executeScript("$('#divBotaoFecharFrame').hide()");
document.executeScript("$('#statusCancelada').hide()");
// In�cio do load.
if (problemaDto == null || problemaDto.getIdProblema() == null) {
document.getElementById("btOcorrencias").setVisible(false);
}
String descricaoSolicitacao = (String) request.getSession().getAttribute("DescricaoSolicitacao");
request.getSession().removeAttribute("DescricaoSolicitacao");
String iframeSolicitacao = request.getParameter("solicitacaoServico");
if (descricaoSolicitacao != null && !descricaoSolicitacao.equalsIgnoreCase("")) {
document.getElementById("DescricaoAuxliar").setInnerHTML(descricaoSolicitacao);
document.executeScript("setarDescricao()");
}
document.getElementById("enviaEmailCriacao").setDisabled(true);
document.getElementById("enviaEmailFinalizacao").setDisabled(true);
usuario = br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
ContratosGruposService contratosGruposService = (ContratosGruposService) ServiceLocator.getInstance().getService(ContratosGruposService.class, null);
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, null);
FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null);
alimentaComboPastasBaseConhecimento(request, document);
HTMLSelect idGrupoAtual = document.getSelectById("idGrupo");
idGrupoAtual.removeAllOptions();
idGrupoAtual.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
GrupoService grupoSegurancaService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
Collection colGrupos = grupoSegurancaService.listaGruposAtivos();
if (colGrupos != null) {
idGrupoAtual.addOptions(colGrupos, "idGrupo", "nome", null);
}
String COLABORADORES_VINC_CONTRATOS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS, "N");
if (COLABORADORES_VINC_CONTRATOS == null) {
COLABORADORES_VINC_CONTRATOS = "N";
}
Collection colContratosColab = null;
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
colContratosColab = contratosGruposService.findByIdEmpregado(usuario.getIdEmpregado());
}
Collection colContratos = contratoService.list();
document.getSelectById("idContrato").removeAllOptions();
Collection<ContratoDTO> listaContratos = new ArrayList<ContratoDTO>();
if (colContratos != null) {
if (colContratos.size() > 1) {
document.getSelectById("idContrato").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
} else {
acao = true;
}
for (Iterator it = colContratos.iterator(); it.hasNext();) {
ContratoDTO contratoDto = (ContratoDTO) it.next();
if (contratoDto.getDeleted() == null || !contratoDto.getDeleted().equalsIgnoreCase("y")) {
// Se parametro de colaboradores por contrato ativo, entao filtra.
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
if (colContratosColab == null) {
continue;
}
if (!isContratoInList(contratoDto.getIdContrato(), colContratosColab)) {
continue;
}
}
String nomeCliente = "";
String nomeForn = "";
ClienteDTO clienteDto = new ClienteDTO();
clienteDto.setIdCliente(contratoDto.getIdCliente());
clienteDto = (ClienteDTO) clienteService.restore(clienteDto);
if (clienteDto != null) {
nomeCliente = clienteDto.getNomeRazaoSocial();
}
FornecedorDTO fornecedorDto = new FornecedorDTO();
fornecedorDto.setIdFornecedor(contratoDto.getIdFornecedor());
fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto);
if (fornecedorDto != null) {
nomeForn = fornecedorDto.getRazaoSocial();
}
contratoDtoAux.setIdContrato(contratoDto.getIdContrato());
if (contratoDto.getSituacao().equalsIgnoreCase("A")) {
String nomeContrato = "" + contratoDto.getNumero() + " de " + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, contratoDto.getDataContrato(), WebUtil.getLanguage(request))
+ " (" + nomeCliente + " - " + nomeForn + ")";
document.getSelectById("idContrato").addOption("" + contratoDto.getIdContrato(), nomeContrato);
contratoDto.setNome(nomeContrato);
listaContratos.add(contratoDto);
}
}
}
}
if (acao) {
this.carregaServicosMulti(document, request, response);
if ((UNIDADE_AUTOCOMPLETE != null) && (!UNIDADE_AUTOCOMPLETE.equalsIgnoreCase("S"))) {
this.carregaUnidade(document, request, response);
}
}
this.alimentaComboCategoriaProblema(request, document);
this.preencherComboCausa(document, request, response);
this.preencherComboCategoriaSolucao(document, request, response);
this.preencherComboOrigem(document, request, response);
// this.preencherComboCalendario(document, request, response);
if (request.getParameter("chamarTelaProblema") != null && !request.getParameter("chamarTelaProblema").equalsIgnoreCase("")) {
Integer tarefa = this.obterIdTarefa(problemaDto, request);
if (tarefa > 0) {
problemaDto.setIdTarefa(tarefa);
}
}
String tarefaAssociada = "N";
if (problemaDto != null && problemaDto.getIdTarefa() != null) {
tarefaAssociada = "S";
request.setAttribute("tarefaAssociada", tarefaAssociada);
}
if (problemaDto != null && problemaDto.getIdContrato() != null) {
document.getElementById("idContrato").setValue("" + problemaDto.getIdContrato());
}
if (problemaDto != null && problemaDto.getIdProblema() != null) {
this.restore(document, request, response);
}
this.carregarInformacaoProblemaAnaliseTendencia(document, request, response);
document.getElementById("iframeSolicitacao").setValue(iframeSolicitacao);
problemaDto = null;
}
/**
* @param document
* @param request
* @param response
* @throws ServiceException
* @throws Exception
* @author maycon.silva
*
* O m�todo carrega as informa��es de um problema caso haja tendencia identifcada no relatorio de Analise de Tend�ncia
*
*/
private void carregarInformacaoProblemaAnaliseTendencia(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
if (request.getParameter("tendenciaProblema") != null && request.getParameter("tendenciaProblema").equalsIgnoreCase("S")) {
String tipo = request.getParameter("tipo");
if (request.getParameter("idContrato") != null && !request.getParameter("idContrato").equalsIgnoreCase("")) {
this.getProblemaDto().setIdContrato(new Integer(request.getParameter("idContrato")));
String UNIDADE_AUTOCOMPLETE = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.UNIDADE_AUTOCOMPLETE, "N");
if ((UNIDADE_AUTOCOMPLETE != null) && (!UNIDADE_AUTOCOMPLETE.equalsIgnoreCase("S"))) {
this.carregaUnidade(document, request, response);
}
document.executeScript("setaValorLookup('" + this.getProblemaDto().getIdContrato() + "');");
}
if (tipo != null && !tipo.trim().equalsIgnoreCase("")) {
if (tipo.equalsIgnoreCase("servico")) {
this.preencheServicoProblemaByTendenciaProblema(document, request, response);
}
if (tipo.equalsIgnoreCase("causa")) {
this.preencheCausaProblemaByTendenciaProblema(document, request, response);
}
if (tipo.equalsIgnoreCase("itemConfiguracao")) {
this.preencheItemConfiguracaoProblemaByTendenciaProblema(document, request, response);
}
}
HTMLForm form = document.getForm("form");
form.setValues(problemaDto);
}
}
/**
* Preenche o servi�o caso seja uma tendencio do tipo servi�o, e seta o servi�o na descri��o do problema
*
* @param document
* @param request
* @param response
* @throws ServiceException
* @throws Exception
* @author maycon.silva
*
*
*/
private void preencheServicoProblemaByTendenciaProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
if (request.getParameter("id") != null && !request.getParameter("id").equalsIgnoreCase("")) {
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoContratoDTO servicoContratoDTO = new ServicoContratoDTO();
servicoContratoDTO.setIdServicoContrato(new Integer(request.getParameter("id")));
servicoContratoDTO = servicoContratoService.findByIdServicoContrato(servicoContratoDTO.getIdServicoContrato(), this.getProblemaDto().getIdContrato());
this.getProblemaDto().setDescricao("Servi�o do Contrato: " + servicoContratoDTO.getNomeServico());
}
}
/**
* Preenche a Causa caso seja uma tendencio do tipo Causa, e seta o Causa na descri��o do problema
*
* @param document
* @param request
* @param response
* @throws ServiceException
* @throws Exception
* @author maycon.silva
*
*
*/
private void preencheCausaProblemaByTendenciaProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
if (request.getParameter("id") != null && !request.getParameter("id").equalsIgnoreCase("")) {
CausaIncidenteService causaIncidenteService = (CausaIncidenteService) ServiceLocator.getInstance().getService(CausaIncidenteService.class, null);
CausaIncidenteDTO causaIncidenteDTO = new CausaIncidenteDTO();
causaIncidenteDTO.setIdCausaIncidente(new Integer(request.getParameter("id")));
causaIncidenteDTO = (CausaIncidenteDTO) causaIncidenteService.restore(causaIncidenteDTO);
this.getProblemaDto().setDescricao("Causa: " + causaIncidenteDTO.getDescricaoCausa());
this.getProblemaDto().setIdCausa(new Integer(request.getParameter("id")));
}
}
/**
* Preenche o Item configura��o caso seja uma tendencio do tipo Item configura��o, e seta o Item configura��o na descri��o do problema
*
* @param document
* @param request
* @param response
* @throws ServiceException
* @throws Exception
* @author maycon.silva
*
*
*/
private void preencheItemConfiguracaoProblemaByTendenciaProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
if (request.getParameter("id") != null && !request.getParameter("id").equalsIgnoreCase("")) {
ItemConfiguracaoService itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
ItemConfiguracaoDTO itemConfiguracaoDto = new ItemConfiguracaoDTO();
itemConfiguracaoDto = itemConfiguracaoService.restoreByIdItemConfiguracao(new Integer(request.getParameter("id")));
this.getProblemaDto().setDescricao("Item Configura��o: " + itemConfiguracaoDto.getIdentificacao());
}
}
private boolean isContratoInList(Integer idContrato, Collection colContratosColab) {
if (colContratosColab != null) {
for (Iterator it = colContratosColab.iterator(); it.hasNext();) {
ContratosGruposDTO contratosGruposDTO = (ContratosGruposDTO) it.next();
if (contratosGruposDTO.getIdContrato().intValue() == idContrato.intValue()) {
return true;
}
}
}
return false;
}
private void alimentaComboPastasBaseConhecimento(HttpServletRequest request, DocumentHTML document) throws Exception {
HTMLSelect combo = document.getSelectById("idPastaBaseConhecimento");
inicializaCombo(request, combo);
Collection<PastaDTO> pastasAtivas = this.getPastaService().consultarPastasAtivas();
ArrayList<PastaDTO> listaPastaAux = (ArrayList<PastaDTO>) this.getPastaService().listPastasESubpastas(usuario);
for (PastaDTO pasta : listaPastaAux) {
if (pasta.getDataFim() == null) {
combo.addOption(pasta.getId().toString(), pasta.getNomeNivel());
}
}
}
/**
* Carrega combo de Origem do conhecimento
*
* @param document
* @param request
* @throws Exception
* @author thays.araujo
*/
public void preencherComboOrigem(DocumentHTML document, HttpServletRequest request) throws Exception {
HTMLSelect combo = document.getSelectById("comboOrigem");
combo.removeAllOptions();
combo.addOption(BaseConhecimentoDTO.CONHECIMENTO.toString(), UtilI18N.internacionaliza(request, "baseConhecimento.conhecimento"));
combo.addOption(BaseConhecimentoDTO.EVENTO.toString(), UtilI18N.internacionaliza(request, "justificacaoFalhas.evento"));
combo.addOption(BaseConhecimentoDTO.MUDANCA.toString(), UtilI18N.internacionaliza(request, "requisicaMudanca.mudanca"));
combo.addOption(BaseConhecimentoDTO.INCIDENTE.toString(), UtilI18N.internacionaliza(request, "solicitacaoServico.incidente"));
combo.addOption(BaseConhecimentoDTO.SERVICO.toString(), UtilI18N.internacionaliza(request, "servico.servico"));
combo.addOption(BaseConhecimentoDTO.PROBLEMA.toString(), UtilI18N.internacionaliza(request, "problema.problema"));
}
/**
* @param document
* @param request
* @param response
* @throws Exception
* @author breno.guimaraes
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
/**
* Adicionado para fazer limpeza da se��o quando for gerenciamento de Servi�o
*
* @author mario.junior
* @since 28/10/2013 08:21
*/
request.getSession(true).setAttribute("colUploadRequisicaoProblemaGED", null);
this.setProblemaDto((ProblemaDTO) document.getBean());
UsuarioDTO usuarioDto = br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
ProblemaDTO problemaAuxDto = this.getProblemaDto();
if (request.getParameter("chamarTelaProblema") != null && !request.getParameter("chamarTelaProblema").equalsIgnoreCase("")) {
this.setProblemaDto(this.getProblemaService(request).restoreAll(problemaDto));
} else {
this.setProblemaDto(this.getProblemaService(request).restoreAll(problemaDto.getIdProblema()));
}
document.executeScript("$('#abas').show()");
document.executeScript("$('#statusProblema').show()");
document.executeScript("$('#divProblemaGrave').show()");
document.executeScript("$('#divPrecisaMudanca').show()");
document.executeScript("$('#divPrecisaSolucaoContorno').show()");
this.atualizaGridProblema(document, request, response);
Integer idTarefa = problemaAuxDto.getIdTarefa();
String acaoFluxo = problemaAuxDto.getAcaoFluxo();
String escalar = problemaAuxDto.getEscalar();
String alterarSituacao = problemaAuxDto.getAlterarSituacao();
String fase = problemaAuxDto.getFase();
String editar = problemaAuxDto.getEditar();
ContatoProblemaService contatoPloblemaService = (ContatoProblemaService) ServiceLocator.getInstance().getService(ContatoProblemaService.class, null);
if (problemaDto.getPrecisaSolucaoContorno() != null) {
// inicio: thiago.monteiro
if (problemaDto.getPrecisaSolucaoContorno().equalsIgnoreCase("S")) {
document.executeScript("$('input[type=radio][name=precisaSolucaoContorno][value=\"S\"]').attr('checked', true)");
} else {
document.executeScript("$('input[type=radio][name=precisaSolucaoContorno][value=\"N\"]').attr('checked', true)");
}
}
if (problemaDto.getPrecisaMudanca() != null) {
if (problemaDto.getPrecisaMudanca().equalsIgnoreCase("S")) {
document.executeScript("$('#abaMudancas').show()");
document.executeScript("$('input[type=radio][name=precisaMudanca][value=\"S\"]').attr('checked', true)");
} else {
document.executeScript("$('input[type=radio][name=precisaMudanca][value=\"N\"]').attr('checked', true)");
}
}
if (problemaDto.getGrave() != null) {
if (problemaDto.getGrave().equalsIgnoreCase("S")) {
document.executeScript("$('#abaRevisaoProblemaGrave').show()");
document.executeScript("$('input[type=radio][name=grave][value=\"S\"]').attr('checked', true)");
} else {
document.executeScript("$('input[type=radio][name=grave][value=\"N\"]').attr('checked', true)");
}
}
if (problemaDto.getPrecisaSolucaoContorno() != null) {
if (problemaDto.getPrecisaSolucaoContorno().equalsIgnoreCase("S")) {
// Utilizando o evento click para evitar o erro relacionado ao recarregamento do form.
document.executeScript("$('input[type=radio][name=precisaSolucaoContorno][value=\"S\"]').click()");
} else {
document.executeScript("$('input[type=radio][name=precisaSolucaoContorno][value=\"N\"]').click()");
}
// fim: thiago.monteiro
}
/* geber.costa */
HTMLCheckbox checkbox = new HTMLCheckbox("acompanhamento", document);
OrigemAtendimentoService origemAtendimentoService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null);
OrigemAtendimentoDTO origemAtendimentoDto = new OrigemAtendimentoDTO();
if (problemaDto.getIdOrigemAtendimento() != null && problemaDto.getIdOrigemAtendimento() > 0) {
origemAtendimentoDto.setIdOrigem(problemaDto.getIdOrigemAtendimento());
origemAtendimentoDto = (OrigemAtendimentoDTO) origemAtendimentoService.restore(origemAtendimentoDto);
}
atribuirNomeProprietarioECriadorParaRequisicaoDto(problemaDto);
atualizaInformacoesRelacionamentos(document);
this.alimentaComboCategoriaProblema(request, document);
String UNIDADE_AUTOCOMPLETE = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.UNIDADE_AUTOCOMPLETE, "N");
if ((UNIDADE_AUTOCOMPLETE != null) && (UNIDADE_AUTOCOMPLETE.equalsIgnoreCase("S"))) {
UnidadeService unidadeService = (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
UnidadeDTO unidadeDTO = new UnidadeDTO();
unidadeDTO.setIdUnidade(problemaDto.getIdUnidade());
unidadeDTO = (UnidadeDTO) unidadeService.restore(unidadeDTO);
if(unidadeDTO != null)
problemaDto.setUnidadeDes(unidadeDTO.getNome());
} else {
this.restoreComboUnidade(problemaDto, document, request, response);
}
this.restoreComboLocalidade(problemaDto, document, request, response);
this.restoreComboOrigemAtendimento(problemaDto, document, request, response);
this.preencherComboCausa(document, request, response);
this.carregaProblemaRelacionado(request, document, problemaAuxDto);
/**
* @author geber.costa verifica se no banco o acompanhamento est� setado como 'N' ou 'S'
* */
if (problemaDto.getAcompanhamento() == null || (problemaDto.getAcompanhamento()).equalsIgnoreCase("N") || (problemaDto.getAcompanhamento()).equalsIgnoreCase("")) {
document.getElementById("acompanhamento").setValue("N");
} else if (problemaDto.getAcompanhamento().equals("S")) {
document.getElementById("acompanhamento").setValue("S");
}
SolucaoContornoDTO solucaoContorno = this.verificaSolucaoContorno(request, response, document, getProblemaDto());
SolucaoDefinitivaDTO solucaoDefinitiva = this.verificaSolucaoDefinitiva(request, response, document, getProblemaDto());
this.getProblemaDto().setIdTarefa(idTarefa);
this.getProblemaDto().setAcaoFluxo(acaoFluxo);
this.getProblemaDto().setEscalar(escalar);
this.getProblemaDto().setAlterarSituacao(alterarSituacao);
this.getProblemaDto().setFase(fase);
if (problemaAuxDto.getChamarTelaProblema() != null && problemaAuxDto.getChamarTelaProblema().equalsIgnoreCase("S")) {
problemaDto.setChamarTelaProblema(problemaAuxDto.getChamarTelaProblema());
document.executeScript("$('#divBotoes').hide()");
document.executeScript("$('#divBotaoFecharFrame').show()");
}
if (solucaoContorno != null) {
this.getProblemaDto().setIdSolucaoContorno(solucaoContorno.getIdSolucaoContorno());
this.getProblemaDto().setTituloSolCon(solucaoContorno.getTitulo());
this.getProblemaDto().setDescSolCon(solucaoContorno.getDescricao());
}
if (solucaoDefinitiva != null) {
this.getProblemaDto().setIdSolucaoDefinitiva(solucaoDefinitiva.getIdSolucaoDefinitiva());
this.getProblemaDto().setTituloSolDefinitiva(solucaoDefinitiva.getTitulo());
this.getProblemaDto().setDescSolDefinitiva(solucaoDefinitiva.getDescricao());
}
verificaUltimaAtualizacao(document, request, problemaDto.getIdProblema());
if (problemaDto.getCausaRaiz() != null && problemaDto.getSolucaoContorno() != null) {
if (!problemaDto.getCausaRaiz().equalsIgnoreCase("") && !problemaDto.getSolucaoContorno().equalsIgnoreCase("")) {
document.executeScript("$('#relacionarErrosConhecidos').show()");
}
}
document.setBean(problemaDto);
HTMLForm form = document.getForm("form");
form.clear();
if (problemaDto.getStatus() != null && problemaDto.getStatus().equalsIgnoreCase(SituacaoRequisicaoProblema.Registrada.getDescricao())) {
document.executeScript("$('#rotuloCausaRaiz').removeClass('campoObrigatorio')");
document.executeScript("$('#rotuloSolucaoContorno').removeClass('campoObrigatorio')");
}
if (problemaDto.getIdContrato() != null) {
document.getSelectById("idContrato").setDisabled(true);
}
if (problemaDto.getIdCategoriaProblema() != null) {
document.getSelectById("idCategoriaProblema").setDisabled(true);
}
form.setValues(problemaDto);
String statusSetado = "";
if (problemaDto.getStatus().equalsIgnoreCase("Registrada") || problemaDto.getStatus().equalsIgnoreCase("Registrado")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />"
+ UtilI18N.internacionaliza(request, "citcorpore.comum.registrada") + "";
} else if (problemaDto.getStatus().equalsIgnoreCase("Resolvido")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />" + UtilI18N.internacionaliza(request, "problema.resolvido") + "";
} else if (problemaDto.getStatus().equalsIgnoreCase("Suspensa")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />"
+ UtilI18N.internacionaliza(request, "solicitacaoServico.situacao.Suspensa") + "";
} else if (problemaDto.getStatus().equalsIgnoreCase("Conclu�da")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />"
+ UtilI18N.internacionaliza(request, "citcorpore.comum.concluida") + "";
} else if (problemaDto.getStatus().equalsIgnoreCase("Cancelada")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />"
+ UtilI18N.internacionaliza(request, "citcorpore.comum.cancelada") + "";
} else if (problemaDto.getStatus().equalsIgnoreCase("Registo de Erro Conhecido")) {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />"
+ UtilI18N.internacionaliza(request, "citcorpore.comum.cancelada") + "";
} else {
statusSetado = "<input type='radio' id='status' name='status' value='" + problemaDto.getStatus() + "' checked='checked' />" + problemaDto.getStatus() + "";
}
document.getElementById("statusSetado").setInnerHTML(statusSetado);
document.executeScript("restaurar()");
document.executeScript("informaNumeroSolicitacao('" + problemaDto.getIdProblema() + "')");
if (editar == null || editar.equalsIgnoreCase("")) {
this.getProblemaDto().setEditar("S");
} else if (editar.equalsIgnoreCase("N")) {
document.executeScript("$('#divBarraFerramentas').hide()");
document.executeScript("$('#divBotoes').hide()");
document.getForm("form").lockForm();
}
/*
* geber.costa M�todo listInfoRegExecucaoProblema verifica se o id do problema � v�lido , caso sim ele traz a lista de ocorrencias de problemas
*/
if (this.listInfoRegExecucaoProblema(this.getProblemaDto(), request) != null) {
document.getElementById("tblOcorrencias").setInnerHTML(listInfoRegExecucaoProblema(problemaDto, request));
}
// if(problemaAuxDto.getChamarTelaProblema() == null || problemaAuxDto.getChamarTelaProblema().equalsIgnoreCase("")){
// Verificando se o prazo para contornar/solucionar o problema expirou.
// notificarPrazoSolucionarProblemaExpirou(document, request, response,usuarioDto);
// }
this.carregaInformacoesComplementares(document, request, problemaDto);
/**
* Adicionado para restaurar anexo
*
* @author mario.junior
* @since 31/10/2013 08:21
*/
ControleGEDService controleGedService = (ControleGEDService) ServiceLocator.getInstance().getService(ControleGEDService.class, null);
Collection colAnexos = controleGedService.listByIdTabelaAndID(ControleGEDDTO.TABELA_PROBLEMA, problemaDto.getIdProblema());
Collection colAnexosUploadDTO = controleGedService.convertListControleGEDToUploadDTO(colAnexos);
request.getSession(true).setAttribute("colUploadRequisicaoProblemaGED", colAnexosUploadDTO);
request.getSession().setAttribute("colUploadRequisicaoProblemaGED", colAnexosUploadDTO);
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
Collection<GrupoDTO> lstGrupos = grupoService.getGruposByEmpregado(usuarioDto.getIdEmpregado());
if (lstGrupos != null) {
for (GrupoDTO g : lstGrupos) {
if (this.getProblemaService(request).verificaPermissaoGrupoCancelar(problemaDto.getIdCategoriaProblema(), g.getIdGrupo())) {
document.executeScript("$('#statusCancelada').show()");
break;
}
}
}
}
private void carregaProblemaRelacionado(HttpServletRequest request, DocumentHTML document, ProblemaDTO problemaDto) throws Exception {
HTMLTable tblProblmea = document.getTableById("tblProblema");
tblProblmea.deleteAllRows();
ProblemaService problemaservice = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
if (problemaDto != null) {
ProblemaRelacionadoDTO problemaRelacionadoDTO = new ProblemaRelacionadoDTO();
problemaRelacionadoDTO.setIdProblema(problemaDto.getIdProblema());
Collection col = problemaservice.findByProblemaRelacionado(problemaRelacionadoDTO);
if (col != null) {
tblProblmea.addRowsByCollection(col, new String[] { "idProblema", "titulo", "status", " " }, new String[] { "idProblema" }, "Problema j� cadastrado!!",
new String[] { "exibeIconesProblema" }, null, null);
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblProblema', 'tblProblema');");
}
}
}
/**
* Popula combo categoria hierarquicamente.
*
* @param document
* @throws Exception
*/
private void alimentaComboCategoriaProblema(HttpServletRequest request, DocumentHTML document) throws Exception {
HTMLSelect combo = document.getSelectById("idCategoriaProblema");
inicializaCombo(request, combo);
CategoriaProblemaService categoriaProblemaService = (CategoriaProblemaService) ServiceLocator.getInstance().getService(CategoriaProblemaService.class, null);
ArrayList<CategoriaProblemaDTO> listaCategoriaAux = (ArrayList<CategoriaProblemaDTO>) categoriaProblemaService.getAtivos();
if (listaCategoriaAux != null) {
for (CategoriaProblemaDTO categoriaProblemaDto : listaCategoriaAux) {
combo.addOption(categoriaProblemaDto.getIdCategoriaProblema().toString(), StringEscapeUtils.escapeJavaScript(categoriaProblemaDto.getNomeCategoria()));
}
}
}
private void inicializaCombo(HttpServletRequest request, HTMLSelect componenteCombo) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
/**
* Centraliza atualiza��o de informa��es dos objetos que se relacionam com a mudan�a.
*
* @throws ServiceException
* @throws Exception
*/
private void atualizaInformacoesRelacionamentos(DocumentHTML document) throws ServiceException, Exception {
// informa��es dos ics relacionados
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ArrayList<ProblemaItemConfiguracaoDTO> listaICsRelacionados = (ArrayList<ProblemaItemConfiguracaoDTO>) getProblemaItemConfiguracaoService().findByIdProblema(problemaDto.getIdProblema());
if (listaICsRelacionados != null) {
for (ProblemaItemConfiguracaoDTO problemaItemConfiguracaoDTO : listaICsRelacionados) {
ItemConfiguracaoDTO itemConfiguracaoDTO = new ItemConfiguracaoDTO();
itemConfiguracaoDTO = getItemConfiguracaoService().restoreByIdItemConfiguracao(problemaItemConfiguracaoDTO.getIdItemConfiguracao());
if (itemConfiguracaoDTO != null) {
problemaItemConfiguracaoDTO.setNomeItemConfiguracao(itemConfiguracaoDTO.getIdentificacao());
}
}
problemaDto.setItensConfiguracaoRelacionadosSerializado(WebUtil.serializeObjects(listaICsRelacionados, document.getLanguage()));
}
ArrayList<SolicitacaoServicoProblemaDTO> listaSolicitacaoServico = (ArrayList<SolicitacaoServicoProblemaDTO>) getSolicitacaoServicoProblemaService().findByIdProblema(
problemaDto.getIdProblema());
if (listaSolicitacaoServico != null && listaSolicitacaoServico.size() > 0) {
for (SolicitacaoServicoProblemaDTO solicitacaoServicoProblemaDto : listaSolicitacaoServico) {
SolicitacaoServicoDTO solicitacaoServicoDto = new SolicitacaoServicoDTO();
if (solicitacaoServicoProblemaDto.getIdSolicitacaoServico() != null) {
solicitacaoServicoDto = solicitacaoServicoService.restoreAll(solicitacaoServicoProblemaDto.getIdSolicitacaoServico());
}
if (solicitacaoServicoDto != null) {
solicitacaoServicoProblemaDto.setNomeServico(solicitacaoServicoDto.getNomeServico());
}
}
problemaDto.setSolicitacaoServicoSerializado(WebUtil.serializeObjects(listaSolicitacaoServico, document.getLanguage()));
}
ArrayList<ProblemaMudancaDTO> listaRequisicoesMudancasRelacionadas = (ArrayList<ProblemaMudancaDTO>) getProblemaMudancaService().findByIdProblema(problemaDto.getIdProblema());
if (listaRequisicoesMudancasRelacionadas != null) {
for (ProblemaMudancaDTO problemaMudanca : listaRequisicoesMudancasRelacionadas) {
RequisicaoMudancaDTO requisicaoMudancaDto = new RequisicaoMudancaDTO();
if (problemaMudanca.getIdRequisicaoMudanca() != null) {
requisicaoMudancaDto = getRequisicaoMudancaService().restoreAll(problemaMudanca.getIdRequisicaoMudanca());
}
if (requisicaoMudancaDto != null) {
problemaMudanca.setIdRequisicaoMudanca(requisicaoMudancaDto.getIdRequisicaoMudanca());
problemaMudanca.setTitulo(requisicaoMudancaDto.getTitulo());
problemaMudanca.setStatus(requisicaoMudancaDto.getStatus());
}
}
problemaDto.setRequisicaoMudancaSerializado(WebUtil.serializeObjects(listaRequisicoesMudancasRelacionadas, document.getLanguage()));
}
}
/**
* @param document
* @param request
* @param response
* @throws Exception
* @author breno.guimaraes
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
document.getJanelaPopupById("JANELA_AGUARDE_MENU").show();
problemaDto = (ProblemaDTO) document.getBean();
UsuarioDTO usuarioDto = br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
ArrayList<ProblemaItemConfiguracaoDTO> ics = (ArrayList<ProblemaItemConfiguracaoDTO>) WebUtil.deserializeCollectionFromRequest(ProblemaItemConfiguracaoDTO.class,
"itensConfiguracaoRelacionadosSerializado", request);
problemaDto.setListProblemaItemConfiguracaoDTO(ics);
ArrayList<SolicitacaoServicoDTO> listIdSolicitacaoServico = (ArrayList<SolicitacaoServicoDTO>) WebUtil.deserializeCollectionFromRequest(SolicitacaoServicoDTO.class,
"solicitacaoServicoSerializado", request);
problemaDto.setListIdSolicitacaoServico(listIdSolicitacaoServico);
ArrayList<ProblemaMudancaDTO> rdm = (ArrayList<ProblemaMudancaDTO>) WebUtil.deserializeCollectionFromRequest(ProblemaMudancaDTO.class, "RequisicaoMudancaSerializado", request);
ArrayList<ProblemaDTO> problemaRelacionados = (ArrayList<ProblemaDTO>) WebUtil.deserializeCollectionFromRequest(ProblemaDTO.class, "colItensProblema_Serialize", request);
if (problemaRelacionados != null) {
problemaDto.setListProblemaRelacionadoDTO(problemaRelacionados);
}
problemaDto.setListProblemaMudancaDTO(rdm);
problemaDto.setUsuarioDto(usuarioDto);
problemaDto.setEnviaEmailCriacao("S");
problemaDto.setEnviaEmailFinalizacao("S");
problemaDto.setEnviaEmailPrazoSolucionarExpirou("S");
ProblemaDTO problemaAuxDto = new ProblemaDTO();
if (problemaDto.getIdProblema() != null) {
problemaAuxDto.setIdProblema(problemaDto.getIdProblema());
problemaAuxDto = (ProblemaDTO) this.getProblemaService(request).restore(problemaAuxDto);
if (problemaAuxDto.getIdContrato() != null) {
problemaDto.setIdContrato(problemaAuxDto.getIdContrato());
}
if (problemaAuxDto.getIdCategoriaProblema() != null) {
problemaDto.setIdCategoriaProblema(problemaAuxDto.getIdCategoriaProblema());
}
}
this.getProblemaService(request).deserializaInformacoesComplementares(problemaDto);
/**
* Adicionado para salvar anexos
*
* @author mario.junior
* @since 31/10/2013 08:21
*/
Collection<UploadDTO> arquivosUpados = (Collection<UploadDTO>) request.getSession(true).getAttribute("colUploadRequisicaoProblemaGED");
problemaDto.setColArquivosUpload(arquivosUpados);
if (problemaDto.getIdProblema() == null) {
problemaDto = (ProblemaDTO) getProblemaService(request).create(problemaDto);
// Registra o email se tiver sido utilizado
EmailSolicitacaoServicoService emailSolicitacaoServicoService = (EmailSolicitacaoServicoService) ServiceLocator.getInstance().getService(EmailSolicitacaoServicoService.class, null);
if (problemaDto != null && problemaDto.getMessageId() != null && problemaDto.getMessageId().trim().length() > 0) {
EmailSolicitacaoServicoDTO emailDto = new EmailSolicitacaoServicoDTO();
emailDto.setIdSolicitacao(problemaDto.getIdProblema());
emailDto.setIdMessage(problemaDto.getMessageId());
emailDto.setOrigem(TipoOrigemLeituraEmail.PROBLEMA.toString());
emailSolicitacaoServicoService.create(emailDto);
}
String comando = "mostraMensagemInsercao('" + UtilI18N.internacionaliza(request, "MSG05") + ".<br>" + UtilI18N.internacionaliza(request, "problema.numero") + " <b><u>"
+ problemaDto.getIdProblema() + "</u></b> " + UtilI18N.internacionaliza(request, "citcorpore.comum.criado") + ".<br><br>"
+ UtilI18N.internacionaliza(request, "prioridade.prioridade") + ": " + problemaDto.getPrioridade() + "' ";
/* comando = comando + "',' "+problemaDto.getIdProblema()+" ')"; */
comando = comando + ", " + problemaDto.getIdProblema() + " )";
document.executeScript("verificaRelacionado(" + problemaDto.getIdProblema() + ")");
document.executeScript(comando);
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
if (problemaDto != null && problemaDto.getIframeSolicitacao().equalsIgnoreCase("true")) {
document.executeScript("parent.inserirProblemaNalista('" + problemaDto.getIdProblema() + "')");
}
return;
} else {
/**
* @author geber.costa se o problema for criado a aba de revis�o n�o aparecer�, por�m a partir do problema criado pode ser usada a aba de revis�o
* */
HTMLCheckbox checkbox = new HTMLCheckbox("acompanhamento", document);
String verificaChechBox = document.getElementById("acompanhamento").getValue();
if (problemaDto.getAcompanhamento() == null || (problemaDto.getAcompanhamento()).equals("N")) {
problemaDto.setAcompanhamento("N");
} else {
problemaDto.setAcompanhamento("S");
}
getProblemaService(request).update(problemaDto);
try {
// Registra o email se tiver sido utilizado
EmailSolicitacaoServicoService emailSolicitacaoServicoService = (EmailSolicitacaoServicoService) ServiceLocator.getInstance().getService(EmailSolicitacaoServicoService.class, null);
if (problemaDto != null && problemaDto.getMessageId() != null && problemaDto.getMessageId().trim().length() > 0) {
EmailSolicitacaoServicoDTO emailDto = emailSolicitacaoServicoService.getEmailByIdSolicitacaoAndOrigem(problemaDto.getIdSolicitacaoServico(),
TipoOrigemLeituraEmail.PROBLEMA.toString());
if (emailDto != null && emailDto.getIdEmail() != null) {
emailDto.setIdMessage(problemaDto.getMessageId());
emailDto.setOrigem(TipoOrigemLeituraEmail.PROBLEMA.toString());
emailSolicitacaoServicoService.update(emailDto);
} else {
emailDto = new EmailSolicitacaoServicoDTO();
emailDto.setIdSolicitacao(problemaDto.getIdProblema());
emailDto.setIdMessage(problemaDto.getMessageId());
emailDto.setOrigem(TipoOrigemLeituraEmail.PROBLEMA.toString());
emailSolicitacaoServicoService.create(emailDto);
}
}
} catch (Exception e) {
e.printStackTrace();
}
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
limparFormularioConsiderandoFCKEditores(document, "form");
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
document.executeScript("fechar('" + problemaDto.getIdProblema() + "');");
problemaDto.getIdProblema();
}
/**
* @param document
* @param request
* @param response
* @throws Exception
* @author breno.guimaraes
*/
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
problemaDto = (ProblemaDTO) document.getBean();
getProblemaService(request).deleteAll(problemaDto);
if (problemaDto.getIdProblema() != null) {
limparFormularioConsiderandoFCKEditores(document, "form");
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
}
/**
* Atualiza as informa��es de nome de proprietario e nome de solicitante em uma requisicaoMudancaDto, caso haja.
*
* @param requisicaoMudancaDto
* @throws ServiceException
* @throws Exception
*/
private void atribuirNomeProprietarioECriadorParaRequisicaoDto(ProblemaDTO problemaDto) throws ServiceException, Exception {
if (problemaDto == null) {
return;
}
Integer idProprietario = problemaDto.getIdProprietario();
Integer idSolicitante = problemaDto.getIdSolicitante();
if (idProprietario != null && idSolicitante != null) {
// problemaDto.setNomeProprietario(usuarioDto.getNomeUsuario());
problemaDto.setSolicitante(getEmpregadoService().restoreByIdEmpregado(idSolicitante).getNome());
}
}
public void carregaServicosMulti(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
if (problemaDto.getIdContrato() == null || problemaDto.getIdContrato().intValue() == 0) {
problemaDto.setIdContrato(contratoDtoAux.getIdContrato());
}
if (problemaDto.getIdContrato() == null || problemaDto.getIdContrato().intValue() == 0) {
return;
}
HTMLSelect idServico = document.getSelectById("idServico");
idServico.removeAllOptions();
if (problemaDto.getIdContrato() == null) {
document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.contrato"));
return;
}
String controleAccUnidade = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTROLE_ACC_UNIDADE_INC_SOLIC, "N");
if (!UtilStrings.isNotVazio(controleAccUnidade)) {
controleAccUnidade = "N";
}
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
int idUnidade = -999;
if (controleAccUnidade.trim().equalsIgnoreCase("S")) {
EmpregadoDTO empregadoDto = new EmpregadoDTO();
empregadoDto.setIdEmpregado(problemaDto.getIdProprietario());
if (problemaDto.getIdProprietario() != null) {
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
if (empregadoDto != null && empregadoDto.getIdUnidade() != null) {
idUnidade = empregadoDto.getIdUnidade().intValue();
}
}
}
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
UnidadesAccServicosService unidadeAccService = (UnidadesAccServicosService) ServiceLocator.getInstance().getService(UnidadesAccServicosService.class, null);
idServico.removeAllOptions();
Collection col = servicoService.findByIdTipoDemandaAndIdContrato(3, problemaDto.getIdContrato(), null);
int cont = 0;
Integer idServicoCasoApenas1 = null;
if (col != null) {
// this.verificaImpactoUrgencia(document, request, response);
/* if (col.size() > 1) */
idServico.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
for (Iterator it = col.iterator(); it.hasNext();) {
ServicoDTO servicoDTO = (ServicoDTO) it.next();
if (servicoDTO.getDeleted() == null || servicoDTO.getDeleted().equalsIgnoreCase("N")) {
if (servicoDTO.getIdSituacaoServico().intValue() == 1) { // ATIVO
if (controleAccUnidade.trim().equalsIgnoreCase("S")) {
UnidadesAccServicosDTO unidadesAccServicosDTO = new UnidadesAccServicosDTO();
unidadesAccServicosDTO.setIdServico(servicoDTO.getIdServico());
unidadesAccServicosDTO.setIdUnidade(idUnidade);
unidadesAccServicosDTO = (UnidadesAccServicosDTO) unidadeAccService.restore(unidadesAccServicosDTO);
if (unidadesAccServicosDTO != null) {// Se existe acesso
idServico.addOptionIfNotExists("" + servicoDTO.getIdServico(), servicoDTO.getNomeServico());
idServicoCasoApenas1 = servicoDTO.getIdServico();
cont++;
}
} else {
idServico.addOptionIfNotExists("" + servicoDTO.getIdServico(), servicoDTO.getNomeServico());
idServicoCasoApenas1 = servicoDTO.getIdServico();
cont++;
}
}
}
}
// --- RETITRADO POR EMAURI EM 16/07 - TRATAMENTO DE DELETED --> idServico.addOptions(col, "idServico", "nomeServico", null);
}
if (cont == 1) { // Se for apenas um servico encontrado, ja executa o carrega contratos.
problemaDto.setIdServico(idServicoCasoApenas1);
}
}
/**
* form.clear n�o funciona para os FCKEditores. Esta fun��o garante que todo o formul�rio ser� limpado.
*
* @param document
* @param nomeFormulario
* @author breno.guimaraes
*/
private void limparFormularioConsiderandoFCKEditores(DocumentHTML document, String nomeFormulario) {
document.executeScript("limpar(document." + nomeFormulario + ")");
}
/**
* @throws ServiceException
* @throws Exception
* @author breno.guimaraes
*/
private ProblemaService getProblemaService(HttpServletRequest request) throws ServiceException, Exception {
if (problemaService == null) {
problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, br.com.centralit.citcorpore.util.WebUtil.getUsuarioSistema(request));
}
return problemaService;
}
/**
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
private SolicitacaoServicoProblemaService getSolicitacaoServicoProblemaService() throws ServiceException, Exception {
if (solicitacaoServicoProblemaService == null) {
solicitacaoServicoProblemaService = (SolicitacaoServicoProblemaService) ServiceLocator.getInstance().getService(SolicitacaoServicoProblemaService.class, null);
}
return solicitacaoServicoProblemaService;
}
private EmpregadoService getEmpregadoService() throws ServiceException, Exception {
if (usuarioService == null) {
usuarioService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
}
return usuarioService;
}
private CategoriaProblemaService getCategoriaProblemaService() throws ServiceException, Exception {
if (categoriaProblemaService == null) {
categoriaProblemaService = (CategoriaProblemaService) ServiceLocator.getInstance().getService(CategoriaProblemaService.class, null);
}
return categoriaProblemaService;
}
private ProblemaItemConfiguracaoService getProblemaItemConfiguracaoService() throws ServiceException, Exception {
if (problemaItemConfiguracaoService == null) {
problemaItemConfiguracaoService = (ProblemaItemConfiguracaoService) ServiceLocator.getInstance().getService(ProblemaItemConfiguracaoService.class, null);
}
return problemaItemConfiguracaoService;
}
private ProblemaMudancaService getProblemaMudancaService() throws ServiceException, Exception {
if (problemaMudancaService == null) {
problemaMudancaService = (ProblemaMudancaService) ServiceLocator.getInstance().getService(ProblemaMudancaService.class, null);
}
return problemaMudancaService;
}
private ItemConfiguracaoService getItemConfiguracaoService() throws ServiceException, Exception {
if (itemConfiguracaoService == null) {
itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
}
return itemConfiguracaoService;
}
private RequisicaoMudancaService getRequisicaoMudancaService() throws ServiceException, Exception {
if (requisicaoMudancaService == null) {
requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null);
}
return requisicaoMudancaService;
}
private PastaService getPastaService() throws ServiceException, Exception {
if (pastaService == null) {
pastaService = (PastaService) ServiceLocator.getInstance().getService(PastaService.class, null);
}
return pastaService;
}
public void preencherComboCausa(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CausaIncidenteService causaIncidenteService = (CausaIncidenteService) ServiceLocator.getInstance().getService(CausaIncidenteService.class, null);
Collection colCausas = causaIncidenteService.listHierarquia();
HTMLSelect comboCausa = document.getSelectById("idCausa");
comboCausa.removeAllOptions();
comboCausa.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (colCausas != null) {
comboCausa.addOptions(colCausas, "idCausaIncidente", "descricaoCausaNivel", null);
}
}
public void preencherComboCategoriaSolucao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CategoriaSolucaoService categoriaSolucaoService = (CategoriaSolucaoService) ServiceLocator.getInstance().getService(CategoriaSolucaoService.class, null);
Collection colCategSolucao = categoriaSolucaoService.listHierarquia();
HTMLSelect idCategoriaSolucao = document.getSelectById("idCategoriaSolucao");
idCategoriaSolucao.removeAllOptions();
idCategoriaSolucao.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (colCategSolucao != null) {
idCategoriaSolucao.addOptions(colCategSolucao, "idCategoriaSolucao", "descricaoCategoriaNivel", null);
}
}
public void restoreColaboradorSolicitante(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
EmpregadoDTO empregadoDto = new EmpregadoDTO();
if (problemaDto.getIdSolicitante() != null) {
empregadoDto.setIdEmpregado(problemaDto.getIdSolicitante());
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
problemaDto.setSolicitante(empregadoDto.getNome());
problemaDto.setNomeContato(empregadoDto.getNome());
problemaDto.setTelefoneContato(empregadoDto.getTelefone());
problemaDto.setRamal(empregadoDto.getRamal());
problemaDto.setEmailContato(empregadoDto.getEmail().trim());
problemaDto.setObservacao(empregadoDto.getObservacoes());
problemaDto.setIdUnidade(empregadoDto.getIdUnidade());
this.preencherComboLocalidade(document, request, response);
}
document.executeScript("$('#POPUP_SOLICITANTE').dialog('close')");
HTMLForm form = document.getForm("form");
// form.clear();
form.setValues(problemaDto);
form.setValueText("ramal", null, problemaDto.getRamal());
form.setValueText("telefoneContato", null, problemaDto.getTelefoneContato());
// form.setValueText("emailContato", null, problemaDto.getEmailContato());
document.executeScript("fecharPopup(\"#POPUP_EMPREGADO\")");
problemaDto = null;
}
public void preencherComboLocalidade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
LocalidadeUnidadeService localidadeUnidadeService = (LocalidadeUnidadeService) ServiceLocator.getInstance().getService(LocalidadeUnidadeService.class, null);
LocalidadeService localidadeService = (LocalidadeService) ServiceLocator.getInstance().getService(LocalidadeService.class, null);
LocalidadeDTO localidadeDto = new LocalidadeDTO();
Collection<LocalidadeUnidadeDTO> listaIdlocalidadePorUnidade = null;
Collection<LocalidadeDTO> listaIdlocalidade = null;
String TIRAR_VINCULO_LOCALIDADE_UNIDADE = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.TIRAR_VINCULO_LOCALIDADE_UNIDADE, "N");
HTMLSelect comboLocalidade = document.getSelectById("idLocalidade");
comboLocalidade.removeAllOptions();
if (TIRAR_VINCULO_LOCALIDADE_UNIDADE.trim().equalsIgnoreCase("N") || TIRAR_VINCULO_LOCALIDADE_UNIDADE.trim().equalsIgnoreCase("")) {
if (problemaDto.getIdUnidade() != null) {
listaIdlocalidadePorUnidade = localidadeUnidadeService.listaIdLocalidades(problemaDto.getIdUnidade());
}
if (listaIdlocalidadePorUnidade != null) {
inicializarComboLocalidade(comboLocalidade, request);
for (LocalidadeUnidadeDTO localidadeUnidadeDto : listaIdlocalidadePorUnidade) {
localidadeDto.setIdLocalidade(localidadeUnidadeDto.getIdLocalidade());
localidadeDto = (LocalidadeDTO) localidadeService.restore(localidadeDto);
comboLocalidade.addOption(localidadeDto.getIdLocalidade().toString(), localidadeDto.getNomeLocalidade());
}
}
} else {
listaIdlocalidade = localidadeService.listLocalidade();
if (listaIdlocalidade != null) {
inicializarComboLocalidade(comboLocalidade, request);
for (LocalidadeDTO localidadeDTO : listaIdlocalidade) {
localidadeDto.setIdLocalidade(localidadeDTO.getIdLocalidade());
localidadeDto = (LocalidadeDTO) localidadeService.restore(localidadeDto);
comboLocalidade.addOption(localidadeDto.getIdLocalidade().toString(), localidadeDto.getNomeLocalidade());
}
}
}
}
private void inicializarComboLocalidade(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
public void carregaUnidade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
String validarComboUnidade = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.UNIDADE_VINC_CONTRATOS, "N");
if (problemaDto.getIdProblema() != null && problemaDto.getIdProblema().intValue() > 0) {
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
contratoDtoAux.setIdContrato(problemaDto.getIdContrato());
problemaDto = (ProblemaDTO) problemaService.restore(problemaDto);
}
if (problemaDto.getIdContrato() == null || problemaDto.getIdContrato().intValue() == 0) {
problemaDto.setIdContrato(contratoDtoAux.getIdContrato());
}
UnidadeService unidadeService = (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
HTMLSelect comboUnidade = document.getSelectById("idUnidade");
inicializarCombo(comboUnidade, request);
if (validarComboUnidade.trim().equalsIgnoreCase("S")) {
Integer idContrato = problemaDto.getIdContrato();
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquiaMultiContratos(idContrato);
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidade.addOption(unidade.getIdUnidade().toString(), StringEscapeUtils.escapeJavaScript(unidade.getNomeNivel()));
}
}
}
} else {
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquia();
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidade.addOption(unidade.getIdUnidade().toString(), StringEscapeUtils.escapeJavaScript(unidade.getNomeNivel()));
}
}
}
}
problemaDto = null;
}
private void inicializarCombo(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
public void preencherComboGrupoExecutor(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
document.getSelectById("idGrupo").removeAllOptions();
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
Collection<GrupoDTO> listGrupo = grupoService.listaGruposAtivos();
document.getSelectById("idGrupo").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
document.getSelectById("idGrupo").addOptions(listGrupo, "idGrupo", "nome", null);
}
public void preencherComboOrigem(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
OrigemAtendimentoService origemService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null);
HTMLSelect idOrigem = document.getSelectById("idOrigemAtendimento");
idOrigem.removeAllOptions();
document.getSelectById("idOrigemAtendimento").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
Collection col = origemService.recuperaAtivos();
String origemPadrao = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ORIGEM_PADRAO_SOLICITACAO, "").trim();
if (col != null) {
if (origemPadrao != null && !origemPadrao.equals("")) {
idOrigem.addOptions(col, "idOrigem", "descricao", origemPadrao);
} else {
idOrigem.addOptions(col, "idOrigem", "descricao", null);
}
}
}
/**
*
* @param problemaDto
* @param request
* @return
* @throws ServiceException
* @throws Exception
* @author geber.costa retorna uma lista com os registros de execu��o de um problema
*/
public String listInfoRegExecucaoProblema(ProblemaDTO problemaDto, HttpServletRequest request) throws ServiceException, Exception {
JustificativaProblemaService justificativaProblemaService = (JustificativaProblemaService) ServiceLocator.getInstance().getService(JustificativaProblemaService.class, null);
OcorrenciaProblemaService ocorrenciaProblemaService = (OcorrenciaProblemaService) ServiceLocator.getInstance().getService(OcorrenciaProblemaService.class, null);
Collection<OcorrenciaProblemaDTO> col = ocorrenciaProblemaService.findByIdProblema(problemaDto.getIdProblema());
CategoriaOcorrenciaDTO categoriaOcorrenciaDTO = new CategoriaOcorrenciaDTO();
OrigemOcorrenciaDTO origemOcorrenciaDTO = new OrigemOcorrenciaDTO();
String strBuffer = "<table class='dynamicTable table table-striped table-bordered table-condensed dataTable' style='table-layout: fixed;'>";
strBuffer += "<tr>";
strBuffer += "<th style='width:20%'>";
strBuffer += UtilI18N.internacionaliza(request, "citcorpore.comum.datahora");
strBuffer += "</th>";
strBuffer += "<th>";
strBuffer += UtilI18N.internacionaliza(request, "solicitacaoServico.informacaoexecucao");
strBuffer += "</th>";
strBuffer += "</tr>";
if (col != null) {
for (OcorrenciaProblemaDTO ocorrenciaProblemaDto : col) {
if (ocorrenciaProblemaDto.getOcorrencia() != null) {
Source source = new Source(ocorrenciaProblemaDto.getOcorrencia());
ocorrenciaProblemaDto.setOcorrencia(source.getTextExtractor().toString());
}
String ocorrencia = UtilStrings.nullToVazio(ocorrenciaProblemaDto.getOcorrencia());
String descricao = UtilStrings.nullToVazio(ocorrenciaProblemaDto.getDescricao());
String informacoesContato = UtilStrings.nullToVazio(ocorrenciaProblemaDto.getInformacoesContato());
ocorrencia = ocorrencia.replaceAll("\"", "");
descricao = descricao.replaceAll("\"", "");
informacoesContato = informacoesContato.replaceAll("\"", "");
ocorrencia = ocorrencia.replaceAll("\n", "<br>");
descricao = descricao.replaceAll("\n", "<br>");
informacoesContato = informacoesContato.replaceAll("\n", "<br>");
ocorrencia = UtilHTML.encodeHTML(ocorrencia.replaceAll("\'", ""));
descricao = UtilHTML.encodeHTML(descricao.replaceAll("\'", ""));
informacoesContato = UtilHTML.encodeHTML(informacoesContato.replaceAll("\'", ""));
strBuffer += "<tr>";
strBuffer += "<td >";
strBuffer += "<b>" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, ocorrenciaProblemaDto.getDataregistro(), WebUtil.getLanguage(request)) + " - "
+ ocorrenciaProblemaDto.getHoraregistro();
strBuffer += " - </b>" + UtilI18N.internacionaliza(request, "ocorrenciaSolicitacao.registradopor") + ": <b>" + ocorrenciaProblemaDto.getRegistradopor() + "</b>";
strBuffer += "</td>";
strBuffer += "<td style='word-wrap: break-word;overflow:hidden;'>";
strBuffer += "<b>" + ocorrenciaProblemaDto.getDescricao() + "<br><br></b>";
strBuffer += "<b>" + ocorrencia + "<br><br></b>";
if (ocorrenciaProblemaDto.getCategoria() != null) {
if (ocorrenciaProblemaDto.getCategoria().equalsIgnoreCase(Enumerados.CategoriaOcorrencia.Suspensao.toString())
|| ocorrenciaProblemaDto.getCategoria().equalsIgnoreCase(Enumerados.CategoriaOcorrencia.MudancaSLA.toString())) {
JustificativaProblemaDTO justificativaSolicitacaoDTO = new JustificativaProblemaDTO();
if (ocorrenciaProblemaDto.getIdJustificativa() != null) {
justificativaSolicitacaoDTO.setIdJustificativaProblema(ocorrenciaProblemaDto.getIdJustificativa());
justificativaSolicitacaoDTO = (JustificativaProblemaDTO) justificativaProblemaService.restore(justificativaSolicitacaoDTO);
if (justificativaSolicitacaoDTO != null) {
strBuffer += UtilI18N.internacionaliza(request, "citcorpore.comum.justificativa") + ": <b>" + justificativaSolicitacaoDTO.getDescricaoProblema() + "<br><br></b>";
}
}
if (!UtilStrings.nullToVazio(ocorrenciaProblemaDto.getComplementoJustificativa()).trim().equalsIgnoreCase("")) {
strBuffer += "<b>" + UtilStrings.nullToVazio(ocorrenciaProblemaDto.getComplementoJustificativa()) + "<br><br></b>";
}
}
}
if (ocorrenciaProblemaDto.getOcorrencia() != null) {
if (categoriaOcorrenciaDTO.getNome() != null && !categoriaOcorrenciaDTO.getNome().equals("")) {
if (categoriaOcorrenciaDTO.getNome().equalsIgnoreCase(Enumerados.CategoriaOcorrencia.Suspensao.toString())
|| categoriaOcorrenciaDTO.getNome().equalsIgnoreCase(Enumerados.CategoriaOcorrencia.MudancaSLA.toString())) {
JustificativaProblemaDTO justificativaSolicitacaoDTO = new JustificativaProblemaDTO();
if (ocorrenciaProblemaDto.getIdJustificativa() != null) {
justificativaSolicitacaoDTO.setIdJustificativaProblema(ocorrenciaProblemaDto.getIdJustificativa());
justificativaSolicitacaoDTO = (JustificativaProblemaDTO) justificativaProblemaService.restore(justificativaSolicitacaoDTO);
if (justificativaSolicitacaoDTO != null) {
strBuffer += UtilI18N.internacionaliza(request, "citcorpore.comum.justificativa") + ": <b>" + justificativaSolicitacaoDTO.getDescricaoProblema() + "<br><br></b>";
}
}
if (!UtilStrings.nullToVazio(ocorrenciaProblemaDto.getComplementoJustificativa()).trim().equalsIgnoreCase("")) {
strBuffer += "<b>" + UtilStrings.nullToVazio(ocorrenciaProblemaDto.getComplementoJustificativa()) + "<br><br></b>";
}
}
}
}
strBuffer += "</td>";
strBuffer += "</tr>";
}
}
strBuffer += "</table>";
categoriaOcorrenciaDTO = null;
origemOcorrenciaDTO = null;
return strBuffer;
}
public void restoreComboUnidade(ProblemaDTO problemaDto, DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UnidadeService unidadeService = (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
if (problemaDto.getIdProblema() != null && problemaDto.getIdProblema().intValue() > 0) {
String validarComboUnidade = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.UNIDADE_VINC_CONTRATOS, "N");
if (request.getParameter("chamarTelaProblema") == null || request.getParameter("chamarTelaProblema").equalsIgnoreCase("")) {
problemaDto = (ProblemaDTO) problemaService.restore(problemaDto);
}
if (problemaDto.getIdContrato() == null || problemaDto.getIdContrato().intValue() == 0) {
problemaDto.setIdContrato(contratoDtoAux.getIdContrato());
}
String UNIDADE_AUTOCOMPLETE = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.UNIDADE_AUTOCOMPLETE, "N");
if ((UNIDADE_AUTOCOMPLETE != null) && (!UNIDADE_AUTOCOMPLETE.equalsIgnoreCase("S"))) {
if (problemaDto.getIdUnidade() != null) {
HTMLSelect comboUnidade = document.getSelectById("idUnidade");
inicializarCombo(comboUnidade, request);
if (validarComboUnidade.trim().equalsIgnoreCase("S")) {
Integer idContrato = problemaDto.getIdContrato();
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquiaMultiContratos(idContrato);
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidade.addOption(unidade.getIdUnidade().toString(), StringEscapeUtils.escapeJavaScript(unidade.getNomeNivel()));
}
}
}
} else {
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquia();
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidade.addOption(unidade.getIdUnidade().toString(), StringEscapeUtils.escapeJavaScript(unidade.getNomeNivel()));
}
}
}
}
}
}
}
}
public void restoreComboLocalidade(ProblemaDTO ProblemaDto, DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
if (ProblemaDto.getIdProblema() != null && ProblemaDto.getIdProblema().intValue() > 0) {
String TIRAR_VINCULO_LOCALIDADE_UNIDADE = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.TIRAR_VINCULO_LOCALIDADE_UNIDADE, "N");
if (ProblemaDto.getIdContrato() == null || ProblemaDto.getIdContrato().intValue() == 0) {
ProblemaDto.setIdContrato(contratoDtoAux.getIdContrato());
}
if (ProblemaDto.getIdLocalidade() != null) {
LocalidadeUnidadeService localidadeUnidadeService = (LocalidadeUnidadeService) ServiceLocator.getInstance().getService(LocalidadeUnidadeService.class, null);
LocalidadeService localidadeService = (LocalidadeService) ServiceLocator.getInstance().getService(LocalidadeService.class, null);
LocalidadeDTO localidadeDto = new LocalidadeDTO();
Collection<LocalidadeUnidadeDTO> listaIdlocalidadePorUnidade = null;
Collection<LocalidadeDTO> listaIdlocalidade = null;
HTMLSelect comboLocalidade = document.getSelectById("idLocalidade");
comboLocalidade.removeAllOptions();
if (TIRAR_VINCULO_LOCALIDADE_UNIDADE.trim().equalsIgnoreCase("N") || TIRAR_VINCULO_LOCALIDADE_UNIDADE.trim().equalsIgnoreCase("")) {
if (ProblemaDto.getIdUnidade() != null) {
listaIdlocalidadePorUnidade = localidadeUnidadeService.listaIdLocalidades(ProblemaDto.getIdUnidade());
}
if (listaIdlocalidadePorUnidade != null) {
inicializarComboLocalidade(comboLocalidade, request);
for (LocalidadeUnidadeDTO localidadeUnidadeDto : listaIdlocalidadePorUnidade) {
localidadeDto.setIdLocalidade(localidadeUnidadeDto.getIdLocalidade());
localidadeDto = (LocalidadeDTO) localidadeService.restore(localidadeDto);
comboLocalidade.addOption(localidadeDto.getIdLocalidade().toString(), localidadeDto.getNomeLocalidade());
}
}
} else {
listaIdlocalidade = localidadeService.listLocalidade();
if (listaIdlocalidade != null) {
inicializarComboLocalidade(comboLocalidade, request);
for (LocalidadeDTO localidadeDTO : listaIdlocalidade) {
localidadeDto.setIdLocalidade(localidadeDTO.getIdLocalidade());
localidadeDto = (LocalidadeDTO) localidadeService.restore(localidadeDto);
comboLocalidade.addOption(localidadeDto.getIdLocalidade().toString(), localidadeDto.getNomeLocalidade());
}
}
}
}
}
}
public void preencherComboOrigemAtendimento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HTMLSelect comboOrigem = document.getSelectById("idOrigemAtendimento");
OrigemAtendimentoService origemAtendimentoService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null);
Collection<OrigemAtendimentoDTO> listOrigem = origemAtendimentoService.list();
comboOrigem.removeAllOptions();
comboOrigem.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (listOrigem != null) {
for (OrigemAtendimentoDTO origemDTO : listOrigem) {
if (origemDTO.getIdOrigem() != null || origemDTO.getIdOrigem() > 0) {
comboOrigem.addOption(origemDTO.getIdOrigem().toString(), StringEscapeUtils.escapeJavaScript(origemDTO.getDescricao()));
}
}
}
}
public void restoreComboOrigemAtendimento(ProblemaDTO problemaDto, DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
if (problemaDto.getIdProblema() != null && problemaDto.getIdProblema().intValue() > 0) {
if (problemaDto.getIdOrigemAtendimento() != null && problemaDto.getIdOrigemAtendimento().intValue() > 0) {
this.preencherComboOrigem(document, request, response);
}
}
}
/**
* Restaura Problemas na Grid.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
public void atualizaGridProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDTO = (ProblemaDTO) document.getBean();
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
ConhecimentoProblemaService conhecimentoProblemaService = (ConhecimentoProblemaService) ServiceLocator.getInstance().getService(ConhecimentoProblemaService.class, null);
ConhecimentoProblemaDTO erroConhecido = null;
if (problemaDTO.getIdProblema() != null) {
erroConhecido = conhecimentoProblemaService.getErroConhecidoByProblema(problemaDTO.getIdProblema());
problemaDTO = (ProblemaDTO) problemaService.restore(problemaDTO);
}
HTMLTable tblErrosConhecidos = document.getTableById("tblErrosConhecidos");
tblErrosConhecidos.deleteAllRows();
if (erroConhecido != null) {
tblErrosConhecidos.addRow(erroConhecido, new String[] { "", "titulo", "status", "" }, null, null, new String[] { "exibeIconesEditarBaseConhecimento" }, null, null);
document.executeScript("$('#divBaseConhecimento').hide()");
} else {
document.executeScript("$('#divBaseConhecimento').show()");
}
}
public void atualizaGridProblemaRelacionados(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO bean = (ProblemaDTO) document.getBean();
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
ProblemaDTO problemaDTO = new ProblemaDTO();
problemaDTO.setIdProblema(bean.getIdProblemaRelacionado());
problemaDTO = (ProblemaDTO) problemaService.restore(problemaDTO);
if (problemaDTO == null) {
return;
}
HTMLTable tblProblema = document.getTableById("tblProblema");
if (problemaDTO.getSequenciaProblema() == null) {
tblProblema.addRow(problemaDTO, new String[] { "idProblema", "titulo", "status", " " }, new String[] { "idProblema" }, "Problema j� cadastrado!!", new String[] { "exibeIconesProblema" },
null, null);
} else {
tblProblema.updateRow(problemaDTO, new String[] { "idProblema", "titulo", "status", " " }, new String[] { "idProblema" }, "Problema j� cadastrado!!",
new String[] { "exibeIconesProblema" }, "", null, problemaDTO.getSequenciaProblema());
}
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblProblema', 'tblProblema');");
document.executeScript("fecharModalProblema();");
bean = null;
}
public void limparTabelas(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HTMLTable tblICs = document.getTableById("tblICs");
tblICs.deleteAllRows();
HTMLTable tblRDM = document.getTableById("tblRDM");
tblRDM.deleteAllRows();
HTMLTable tblSolicitacaoServico = document.getTableById("tblSolicitacaoServico");
tblSolicitacaoServico.deleteAllRows();
}
/**
* preencher comobo de calendario
*
* @param document
* @param request
* @param response
* @throws Exception
* @author geber.costa
*/
public void preencherComboCalendario(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CalendarioService calendarioService = (CalendarioService) ServiceLocator.getInstance().getService(CalendarioService.class, null);
HTMLSelect comboCalendario = document.getSelectById("idCalendario");
Collection<CalendarioDTO> calendarioDTO = calendarioService.list();
comboCalendario.removeAllOptions();
if (calendarioDTO != null) {
for (CalendarioDTO calendario : calendarioDTO) {
comboCalendario.addOption(calendario.getIdCalendario().toString(), StringEscapeUtils.escapeJavaScript(calendario.getDescricao()));
}
}
}
/**
* M�todo respons�vel pela valida��o do avan�o do fluxo. O fluxo s� ser� v�lido e portanto s� poder� avan�ar caso o problema em quest�o esteja associado a uma base de conhecimento.
*
* @autor thiago.monterio
* @param document
* @param request
* @param response
* @throws Exception
*/
public void validacaoAvancaFluxo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDTO = (ProblemaDTO) document.getBean();
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
if (problemaDTO != null && problemaService != null) {
if (problemaDTO.getStatus() != null && problemaDTO.getStatus().equalsIgnoreCase(SituacaoRequisicaoProblema.RegistroErroConhecido.getDescricao())) {
boolean avancarFluxo = problemaService.validacaoAvancaFluxo(problemaDTO, null);
if (!avancarFluxo) {
document.alert(UtilI18N.internacionaliza(request, "problema.mensagem.necessarioExistirErroConhecido"));
} else {
document.executeScript("gravar('form')");
}
} else {
document.executeScript("gravar('form')");
}
}
}
/**
* M�todo respons�vel por enviar mensagens de notifica��o no e-mail do respons�vel (propriet�rio) e de cada um dos usu�rios que fazem parte do grupo executor na resolu��o de um problema.
*
* @param document
* @param request
* @param response
* @throws Exception
* @autor thiago.monteiro / thays.araujo
*/
public void notificarPrazoSolucionarProblemaExpirou(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, UsuarioDTO usuario) throws Exception {
EmpregadoDTO empregadoDto = new EmpregadoDTO();
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
String enviarNotificacao = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.NOTIFICAR_RESPONSAVEL_GRUPO_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO, "S");
if (enviarNotificacao.equalsIgnoreCase("S")) {
Collection<ProblemaDTO> listaProblemasComPrazoLimiteContornoExpirado = problemaService.listaProblemasComPrazoLimiteContornoExpirado(usuario);
if (usuario != null) {
if (usuario.getIdEmpregado() != null) {
empregadoDto.setIdEmpregado(usuario.getIdEmpregado());
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
}
}
if (problemaService != null && usuarioService != null) {
if (listaProblemasComPrazoLimiteContornoExpirado != null) {
String ID_MODELO_EMAIL_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO = ParametroUtil.getValorParametroCitSmartHashMap(
ParametroSistema.ID_MODELO_EMAIL_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO, "38");
Set emailsIntegrantesGrupoExecutor = new HashSet();
Collection<String> emailsPorGrupo = null;
for (ProblemaDTO problemaDto : listaProblemasComPrazoLimiteContornoExpirado) {
if (problemaDto.getIdGrupo() != null) {
emailsPorGrupo = grupoService.listarEmailsPorGrupo(problemaDto.getIdGrupo());
if (emailsPorGrupo != null && !emailsPorGrupo.isEmpty()) {
for (String email : emailsPorGrupo) {
emailsIntegrantesGrupoExecutor.add(email);
}
}
}
}
MensagemEmail mensagemEmail = new MensagemEmail(Integer.parseInt(ID_MODELO_EMAIL_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO.trim()), new IDto[] { problemaDto });
mensagemEmail.envia(empregadoDto.getEmail(), StringUtils.remove(StringUtils.remove(emailsIntegrantesGrupoExecutor.toString(), "["), "]"),
ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.RemetenteNotificacoesSolicitacao, "10"));
}
}
}
}
/* *//**
* M�todo respons�vel por enviar mensagens de notifica��o no e-mail do respons�vel (propriet�rio) e de cada um dos usu�rios que fazem parte do grupo de interessados na resolu��o de um
* problema.
*
* @autor thiago.monteiro
* @param document
* @param request
* @param response
* @throws Exception
*/
/*
*
* // Chamar esse m�todo no m�todo load. public void notificarPrazoSolucionarProblemaExpirou(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
*
* // Obtendo os dados do formul�rio. ProblemaDTO problemaDTO = (ProblemaDTO) document.getBean();
*
* // Verificando se o problema j� foi cadastrado. if (problemaDTO != null && problemaDTO.getIdProblema() != null) {
*
* ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
*
* UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
*
* if (problemaService != null && usuarioService != null) {
*
* // Verificando se o usu�rio optou por ser notificado por e-mail quando o prazo para solucionar/contornar o problema houver expirado. if (problemaDTO.getEnviaEmailPrazoSolucionarExpirou() !=
* null && problemaDTO.getEnviaEmailPrazoSolucionarExpirou().equalsIgnoreCase("S") ) {
*
* // Verificando se a data hora limite existe. if (problemaDTO.getDataHoraLimiteStr() != null && !problemaDTO.getDataHoraLimiteStr().isEmpty() ) {
*
* // Determinando a hora limite. problemaDTO.setDataHoraLimite(UtilDatas.strToTimestamp(String.format("%s:%s", problemaDTO.getDataHoraLimiteStr(), "00") ) );
*
* // Calculando a diferen�a entre as datas limite para contorno do problema e a data atual. int diferenca = UtilDatas.dataDiff(UtilDatas.getDataHoraAtual(), problemaDTO.getDataHoraLimite() );
*
* // Sendo o resultado negativo o prazo para contornar o problema expirou. if (diferenca < 0) {
*
* // Notificar o propriet�rio (colaborador que capturou o problema) e o grupo de interessados (grupo executor) por e-mail.
*
* // Criar um modelo de e-mail para essa situa��o. String ID_MODELO_EMAIL_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO = ParametroUtil.getValue(ParametroSistema.ID_MODELO_EMAIL_ALTERACAO_SENHA,
* "38");
*
* problemaDTO.setDescricao(problemaDTO.getDescricao().substring(0, problemaDTO.getDescricao().lastIndexOf(".") ) );
*
* problemaDTO.setUsuarioDto(new UsuarioDTO() );
*
* problemaDTO.getUsuarioDto().setIdUsuario(problemaDTO.getIdProprietario() );
*
* problemaDTO.setUsuarioDto( (UsuarioDTO) usuarioService.restore(problemaDTO.getUsuarioDto() ) );
*
* problemaDTO.setNomeProprietario(problemaDTO.getUsuarioDto().getNomeUsuario() );
*
* // Envio de e-mail para o grupo de interessados (grupo executor).
*
* String emailsIntegrantesGrupoExecutor = "";
*
* Collection<String> emailsPorGrupo = null;
*
* if (problemaDTO.getIdGrupo() != null && problemaDTO.getIdGrupo() > 0) {
*
* GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
*
* // OBS: Deve-se cadastrar os e-mails dos usu�rios na p�gina de cadastro de grupo. emailsPorGrupo = grupoService.listarEmailsPorGrupo(problemaDTO.getIdGrupo() );
*
* // Iterando atrav�s dos e-mails dos integrantes do grupo. if (emailsPorGrupo != null && !emailsPorGrupo.isEmpty() ) {
*
* for (String email : emailsPorGrupo) {
*
* emailsIntegrantesGrupoExecutor += String.format("%s,", email); }
*
* // Retirando a �ltima v�rgula. emailsIntegrantesGrupoExecutor = emailsIntegrantesGrupoExecutor.substring(0, emailsIntegrantesGrupoExecutor.lastIndexOf(",") ); } }
*
* // Solicitante � um empregado ou colaborador. // Propriet�rio � a pessoa que capturou o problema para solucion�-lo.
*
* MensagemEmail mensagemEmail = new MensagemEmail(Integer.parseInt(ID_MODELO_EMAIL_PRAZO_SOLUCAO_CONTORNO_PROBLEMA_EXPIRADO), new IDto[] {problemaDTO} );
*
* // O destinat�rio � o respons�vel ou propriet�rio que nem sempre far� parte do grupo executor. mensagemEmail.envia(problemaDTO.getEmailContato(), emailsIntegrantesGrupoExecutor,
* ParametroUtil.getValue(ParametroSistema.RemetenteNotificacoesSolicitacao, "10") );
*
* } } } } } }
*/
public void gravarSolContorno(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
SolucaoContornoDTO solucaoContornoDto = new SolucaoContornoDTO();
SolucaoContornoService solucaoContornoService = (SolucaoContornoService) ServiceLocator.getInstance().getService(SolucaoContornoService.class, null);
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
if (problemaDto.getIdProblema() != null) {
solucaoContornoDto.setIdProblema(problemaDto.getIdProblema());
if (problemaDto.getIdSolucaoContorno() != null && problemaDto.getIdSolucaoContorno().intValue() > 0) {
solucaoContornoDto.setIdSolucaoContorno(problemaDto.getIdSolucaoContorno());
solucaoContornoDto = (SolucaoContornoDTO) solucaoContornoService.restore(solucaoContornoDto);
if (problemaDto.getSolucaoContorno() != null && !problemaDto.getSolucaoContorno().equals("")) {
solucaoContornoDto.setDescricao(problemaDto.getSolucaoContorno());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.descricaoObrigatorio"));
return;
}
if (problemaDto.getTituloSolucaoContorno() != null && !problemaDto.getTituloSolucaoContorno().equals("")) {
solucaoContornoDto.setTitulo(problemaDto.getTituloSolucaoContorno());
} else {
document.alert(UtilI18N.internacionaliza(request, "baseConhecimento.tituloObrigatorio"));
return;
}
solucaoContornoService.update(solucaoContornoDto);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
} else {
if (problemaDto.getSolucaoContorno() != null && !problemaDto.getSolucaoContorno().equals("")) {
solucaoContornoDto.setDescricao(problemaDto.getSolucaoContorno());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.descricaoObrigatorio"));
return;
}
if (problemaDto.getTituloSolucaoContorno() != null && !problemaDto.getTituloSolucaoContorno().equals("")) {
solucaoContornoDto.setTitulo(problemaDto.getTituloSolucaoContorno());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.tituloObrigatorio"));
return;
}
solucaoContornoDto.setDataHoraCriacao(UtilDatas.getDataHoraAtual());
solucaoContornoDto = (SolucaoContornoDTO) solucaoContornoService.create(solucaoContornoDto);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
problemaService.updateNotNull(problemaDto);
} else {
return;
}
this.montarTabela(solucaoContornoDto, request, response, document);
document.executeScript("fecharSolContorno()");
}
public SolucaoContornoDTO verificaSolucaoContorno(HttpServletRequest request, HttpServletResponse response, DocumentHTML document, ProblemaDTO problema) throws ServiceException, Exception {
SolucaoContornoDTO solucaoContorno = new SolucaoContornoDTO();
SolucaoContornoService solucaoContornoService = (SolucaoContornoService) ServiceLocator.getInstance().getService(SolucaoContornoService.class, null);
solucaoContorno.setIdProblema(problema.getIdProblema());
solucaoContorno = solucaoContornoService.findByIdProblema(solucaoContorno);
if (solucaoContorno != null) {
this.montarTabela(solucaoContorno, request, response, document);
}
return solucaoContorno;
}
public void montarTabela(SolucaoContornoDTO solucaoContornoDto, HttpServletRequest request, HttpServletResponse response, DocumentHTML document) throws Exception {
HTMLTable tblSolContorno = document.getTableById("tblSolContorno");
tblSolContorno.deleteAllRows();
if (solucaoContornoDto.getIdSolucaoContorno() != null) {
solucaoContornoDto.setDataHoraCriacaoStr(UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, solucaoContornoDto.getDataHoraCriacao(), WebUtil.getLanguage(request)));
tblSolContorno.addRow(solucaoContornoDto, new String[] { "titulo", "dataHoraCriacaoStr", "descricao" }, null, null, null, null, null);
// document.executeScript("$('#divTblSolContorno').show();");
}
}
public void gravarSolDefinitiva(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
SolucaoDefinitivaDTO solucaoDefinitivaDto = new SolucaoDefinitivaDTO();
SolucaoDefinitivaService solucaoDefinitivaService = (SolucaoDefinitivaService) ServiceLocator.getInstance().getService(SolucaoDefinitivaService.class, null);
if (problemaDto.getIdProblema() != null) {
solucaoDefinitivaDto.setIdProblema(problemaDto.getIdProblema());
if (problemaDto.getIdSolucaoDefinitiva() != null && problemaDto.getIdSolucaoDefinitiva().intValue() > 0) {
solucaoDefinitivaDto.setIdSolucaoDefinitiva(problemaDto.getIdSolucaoDefinitiva());
solucaoDefinitivaDto = (SolucaoDefinitivaDTO) solucaoDefinitivaService.restore(solucaoDefinitivaDto);
if (problemaDto.getSolucaoDefinitiva() != null && !problemaDto.getSolucaoDefinitiva().equals("")) {
solucaoDefinitivaDto.setDescricao(problemaDto.getSolucaoDefinitiva());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.descricaoObrigatorio"));
return;
}
if (problemaDto.getTituloSolucaoDefinitiva() != null && !problemaDto.getTituloSolucaoDefinitiva().equals("")) {
solucaoDefinitivaDto.setTitulo(problemaDto.getTituloSolucaoDefinitiva());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.tituloObrigatorio"));
return;
}
solucaoDefinitivaService.update(solucaoDefinitivaDto);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
} else {
if (problemaDto.getSolucaoDefinitiva() != null && !problemaDto.getSolucaoDefinitiva().equals("")) {
solucaoDefinitivaDto.setDescricao(problemaDto.getSolucaoDefinitiva());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.descricaoObrigatorio"));
return;
}
if (problemaDto.getTituloSolucaoDefinitiva() != null && !problemaDto.getTituloSolucaoDefinitiva().equals("")) {
solucaoDefinitivaDto.setTitulo(problemaDto.getTituloSolucaoDefinitiva());
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.tituloObrigatorio"));
return;
}
solucaoDefinitivaDto.setDataHoraCriacao(UtilDatas.getDataHoraAtual());
solucaoDefinitivaDto = (SolucaoDefinitivaDTO) solucaoDefinitivaService.create(solucaoDefinitivaDto);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
} else {
return;
}
this.montarTabela(solucaoDefinitivaDto, request, response, document);
document.executeScript("fecharSolDefinitiva()");
}
public SolucaoDefinitivaDTO verificaSolucaoDefinitiva(HttpServletRequest request, HttpServletResponse response, DocumentHTML document, ProblemaDTO problema) throws ServiceException, Exception {
SolucaoDefinitivaDTO solucaoDefinitiva = new SolucaoDefinitivaDTO();
SolucaoDefinitivaService solucaoDefinitivaService = (SolucaoDefinitivaService) ServiceLocator.getInstance().getService(SolucaoDefinitivaService.class, null);
solucaoDefinitiva.setIdProblema(problema.getIdProblema());
solucaoDefinitiva = solucaoDefinitivaService.findByIdProblema(solucaoDefinitiva);
if (solucaoDefinitiva != null) {
this.montarTabela(solucaoDefinitiva, request, response, document);
}
return solucaoDefinitiva;
}
public void montarTabela(SolucaoDefinitivaDTO solucaoDefinitivaDto, HttpServletRequest request, HttpServletResponse response, DocumentHTML document) throws Exception {
HTMLTable tblSolDefinitiva = document.getTableById("tblSolDefinitiva");
tblSolDefinitiva.deleteAllRows();
if (solucaoDefinitivaDto.getIdSolucaoDefinitiva() != null) {
solucaoDefinitivaDto.setDataHoraCriacaoStr(UtilDatas.convertDateToString(TipoDate.TIMESTAMP_WITH_SECONDS, solucaoDefinitivaDto.getDataHoraCriacao(), WebUtil.getLanguage(request)));
tblSolDefinitiva.addRow(solucaoDefinitivaDto, new String[] { "titulo", "dataHoraCriacaoStr", "descricao" }, null, null, null, null, null);
}
}
/**
* @author geber.costa
* @param document
* @param idProblema
* @throws Exception
* Traz uma lista para verifica��o de ultima data e hora da ocorr�ncia, esses dados ser�o retornados na p�gina do cliente.
*/
public void verificaUltimaAtualizacao(DocumentHTML document, HttpServletRequest request, int idProblema) throws Exception {
OcorrenciaProblemaDAO ocorrenciaDao = new OcorrenciaProblemaDAO();
List<OcorrenciaProblemaDTO> lista = (List<OcorrenciaProblemaDTO>) ocorrenciaDao.listByUltimaDataEHora(idProblema);
Date data = null;
String hora = "";
String registradoPor = "";
if (lista != null) {
for (OcorrenciaProblemaDTO l : lista) {
/**
*
* valida para pegar a ultima data de registro e a ultima hora, por�m ele ir� pegar a partiro do momento que a ocorrencia n�o for nula e vazia ou se ela tiver alguma das descri��es
* setadas
*/
if (l.getOcorrencia() != null && !l.getOcorrencia().equalsIgnoreCase("") || l.getDescricao().equalsIgnoreCase("Encerramento da Solicita��o")
|| l.getDescricao().equalsIgnoreCase("Suspens�o da Solicita��o") || l.getDescricao().equalsIgnoreCase("Reativa��o da Solicita��o")
|| l.getDescricao().equalsIgnoreCase("Agendamento da Atividade") || l.getDescricao().equalsIgnoreCase("Registro de Execu��o")) {
if (l.getDataregistro() != null) {
data = l.getDataregistro();
}
if (!l.getHoraregistro().equalsIgnoreCase("")) {
hora = l.getHoraregistro();
}
registradoPor = l.getRegistradopor();
}
}
//
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String date = sdf.format(data);
// String registradoPor = lista.get(lista.size()-1).getRegistradopor();
document.getElementById("dataHoraUltimaAtualizacao").setInnerHTML(
"<br/>" + UtilI18N.internacionaliza(request, "carteiraTrabalho.data") + ":<b> " + date + " </b>"
+ UtilI18N.internacionaliza(request, "carteiraTrabalho.hora") + ":<b> " + hora + " </b>"
+ UtilI18N.internacionaliza(request, "ocorrenciaProblema.registradopor") + ":<b> " + registradoPor + " </b>");
}
}
public Integer obterIdTarefa(ProblemaDTO problema, HttpServletRequest request) throws ServiceException, Exception {
int res = 0;
ExecucaoProblemaService execucaoProblemaService = (ExecucaoProblemaService) ServiceLocator.getInstance().getService(ExecucaoProblemaService.class, null);
usuario = br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
TarefaFluxoDTO tarefaFluxo = execucaoProblemaService.recuperaTarefa(usuario.getLogin(), problema);
if (tarefaFluxo != null) {
res = tarefaFluxo.getIdItemTrabalho();
}
return res;
}
public void carregaInformacoesComplementares(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
carregaInformacoesComplementares(document, request, problemaDto);
problemaDto = null;
}
private void carregaInformacoesComplementares(DocumentHTML document, HttpServletRequest request, ProblemaDTO problemaDto) throws Exception {
TemplateSolicitacaoServicoService templateService = (TemplateSolicitacaoServicoService) ServiceLocator.getInstance().getService(TemplateSolicitacaoServicoService.class,
br.com.centralit.citcorpore.util.WebUtil.getUsuarioSistema(request));
// document.executeScript("exibirInformacoesAprovacao(\"" + getProblemaService(request).getUrlInformacoesComplementares(problemaDto) + "\");");
document.executeScript("exibirInformacoesComplementares('" + getProblemaService(request).getUrlInformacoesComplementares(problemaDto) + "');");
// document.executeScript("exibirInformacoesComplementares(localhost:8080/citsmart/pages/\"" + getProblemaService(request).getUrlInformacoesComplementares(problemaDto) + "\");");
TemplateSolicitacaoServicoDTO templateDto = templateService.recuperaTemplateProblema(problemaDto);
if (templateDto != null) {
/*
* if (templateDto.getScriptAposRecuperacao() != null) document.executeScript(templateDto.getScriptAposRecuperacao()); if (!templateDto.getHabilitaDirecionamento().equalsIgnoreCase("S"))
* document.executeScript("document.getElementById('divGrupoAtual').style.display = 'none';"); if (!templateDto.getHabilitaSituacao().equalsIgnoreCase("S"))
* document.executeScript("document.getElementById('divSituacao').style.display = 'none';"); if (!templateDto.getHabilitaSolucao().equalsIgnoreCase("S"))
* document.executeScript("document.getElementById('solucao').style.display = 'none';"); if (!templateDto.getHabilitaUrgenciaImpacto().equalsIgnoreCase("S")) {
* document.executeScript("document.getElementById('divUrgencia').style.display = 'none';"); document.executeScript("document.getElementById('divImpacto').style.display = 'none';"); } if
* (!templateDto.getHabilitaNotificacaoEmail().equalsIgnoreCase("S")) document.executeScript("document.getElementById('divNotificacaoEmail').style.display = 'none';"); if
* (!templateDto.getHabilitaProblema().equalsIgnoreCase("S")) document.executeScript("document.getElementById('divProblema').style.display = 'none';"); if
* (!templateDto.getHabilitaMudanca().equalsIgnoreCase("S")) document.executeScript("document.getElementById('divMudanca').style.display = 'none';"); if
* (!templateDto.getHabilitaItemConfiguracao().equalsIgnoreCase("S")) document.executeScript("document.getElementById('divItemConfiguracao').style.display = 'none';"); if
* (!templateDto.getHabilitaSolicitacaoRelacionada().equalsIgnoreCase("S")) document.executeScript("document.getElementById('divSolicitacaoRelacionada').style.display = 'none';"); if
* (!templateDto.getHabilitaGravarEContinuar().equalsIgnoreCase("S") && problemaDto.getIdTarefa() != null)
* document.executeScript("document.getElementById('btnGravarEContinuar').style.display = 'none';");
*/
if (templateDto.getAlturaDiv() != null) {
document.executeScript("document.getElementById('divInformacoesComplementares').style.height = '" + templateDto.getAlturaDiv().intValue() + "px';");
}
}
document.executeScript("escondeJanelaAguarde()");
}
public void restoreImpactoUrgenciaPorCategoriaProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ProblemaDTO problemaDto = (ProblemaDTO) document.getBean();
CategoriaProblemaDTO categoriaProblemaDto = new CategoriaProblemaDTO();
CategoriaProblemaService categoriaProblemaService = (CategoriaProblemaService) ServiceLocator.getInstance().getService(CategoriaProblemaService.class, null);
if (problemaDto.getIdCategoriaProblema() != null) {
categoriaProblemaDto.setIdCategoriaProblema(problemaDto.getIdCategoriaProblema());
categoriaProblemaDto = (CategoriaProblemaDTO) categoriaProblemaService.restore(categoriaProblemaDto);
}
if (categoriaProblemaDto != null) {
problemaDto.setImpacto(categoriaProblemaDto.getImpacto());
problemaDto.setUrgencia(categoriaProblemaDto.getUrgencia());
}
HTMLForm form = document.getForm("form");
form.setValues(problemaDto);
document.executeScript("atualizaPrioridade()");
}
public void verificarItensRelacionados(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
ProblemaDTO RequisicaoMudancaDTO = (ProblemaDTO) document.getBean();
ArrayList<SolicitacaoServicoDTO> listIdSolicitacaoServico = (ArrayList<SolicitacaoServicoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(SolicitacaoServicoDTO.class,
"solicitacaoServicoSerializado", request);
ArrayList<RequisicaoMudancaItemConfiguracaoDTO> listRequisicaoMudancaItemConfiguracaoDTO = (ArrayList<RequisicaoMudancaItemConfiguracaoDTO>) br.com.citframework.util.WebUtil
.deserializeCollectionFromRequest(RequisicaoMudancaItemConfiguracaoDTO.class, "itensConfiguracaoRelacionadosSerializado", request);
boolean existeItensRelaiconados = false;
if (listIdSolicitacaoServico != null && listIdSolicitacaoServico.size() > 0) {
existeItensRelaiconados = true;
} else if (listRequisicaoMudancaItemConfiguracaoDTO != null && listRequisicaoMudancaItemConfiguracaoDTO.size() > 0) {
existeItensRelaiconados = true;
}
if (existeItensRelaiconados) {
document.executeScript("verificarItensRelacionados(false)");
} else {
this.validacaoAvancaFluxo(document, request, response);
}
}
public void verificarParametroAnexos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String DISKFILEUPLOAD_REPOSITORYPATH = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH, "");
if (DISKFILEUPLOAD_REPOSITORYPATH == null) {
DISKFILEUPLOAD_REPOSITORYPATH = "";
}
if (DISKFILEUPLOAD_REPOSITORYPATH.equals("")) {
throw new LogicException(UtilI18N.internacionaliza(request, "citcorpore.comum.anexosUploadSemParametro"));
}
File pasta = new File(DISKFILEUPLOAD_REPOSITORYPATH);
if (!pasta.exists()) {
throw new LogicException(UtilI18N.internacionaliza(request, "citcorpore.comum.pastaIndicadaNaoExiste"));
}
}
public void restaurarItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) {
problemaDto = (ProblemaDTO) document.getBean();
ItemConfiguracaoDTO itemConfiguracaoDTO = new ItemConfiguracaoDTO();
try {
ItemConfiguracaoService itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
problemaDto.getHiddenIdItemConfiguracao();
if (problemaDto != null && problemaDto.getHiddenIdItemConfiguracao() != null && Integer.SIZE > 0) {
itemConfiguracaoDTO.setIdItemConfiguracao(problemaDto.getHiddenIdItemConfiguracao());
itemConfiguracaoDTO = (ItemConfiguracaoDTO) itemConfiguracaoService.restore(itemConfiguracaoDTO);
document.getElementById("hiddenIdItemConfiguracao").setValue(itemConfiguracaoDTO.getIdItemConfiguracao().toString());
document.executeScript("atualizarTabelaICs('" + itemConfiguracaoDTO.getIdItemConfiguracao() + "','" + itemConfiguracaoDTO.getIdentificacao() + "')");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* M�todo necess�rio para os casos de PoppupManager, pois h� uma fun��o que quando a popup � fechada, � chamado um fireevent para carregar a combo, por�m n�o tinha como acessar o metodo
* alimentaComboCategoriaProblema por ser private e era necessario ter um metodo que recebia os parametro (DocumentHTML, HttpServletRequest, HttpServletResponse)
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void alimentaComboCatProblemaAposCadastro(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.alimentaComboCategoriaProblema(request, document);
}
}