package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.ContratoDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO; 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.UploadDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.ContratoService; import br.com.centralit.citcorpore.negocio.ContratosGruposService; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService; import br.com.centralit.citcorpore.negocio.ServicoContratoService; import br.com.centralit.citcorpore.negocio.ServicoService; import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; public class SolicitacaoServicoMultiContratosPortal extends SolicitacaoServicoMultiContratos { @SuppressWarnings("unchecked") @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = 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; } //Limpa sess�o dos anexos request.getSession(true).setAttribute("colUploadsGED", null); //Imprime os dados do solicitante informaDadosSolicitacao(document, request, response); GrupoEmpregadoService grupoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null); ContratosGruposService contratosGruposService = (ContratosGruposService) ServiceLocator.getInstance().getService(ContratosGruposService.class, null); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); List<GrupoEmpregadoDTO> listGrupos = (ArrayList<GrupoEmpregadoDTO>) grupoService.findByIdEmpregado(usuario.getIdEmpregado()); /*Set<ContratosGruposDTO> listContratosGrupos = new HashSet <ContratosGruposDTO>(); Set colContratos = new HashSet<ContratoDTO>();*/ String CONTRATO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTRATO_PADRAO, "0").trim(); Integer idContrato = (CONTRATO.equalsIgnoreCase("") ? 0 : Integer.valueOf(CONTRATO)); ContratoDTO contrato = new ContratoDTO(); contrato.setIdContrato(idContrato); contrato = (ContratoDTO) contratoService.restore(contrato); /*Realiza a listagem de grupos empregados*/ if (listGrupos!=null && contrato!=null) { if(contratosGruposService.hasContrato(listGrupos, contrato)) carregaServico(document, request, contrato); } else { document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); document.executeScript("fechar();"); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.contratoNaoLocalizado")); } } /** * informaDadosSolicita��o - Informa dados iniciais da solicita��o no momento da abertura * * @author Flavio.Junior */ public void informaDadosSolicitacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = 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; } /*Setando o id do Solicitante diretamente d sess�o*/ document.getElementById("idSolicitante").setValue(usuario.getIdEmpregado().toString()); EmpregadoDTO eb = this.getEmpregadoService().restoreByIdEmpregado(usuario.getIdEmpregado()); if (eb != null) { StringBuilder sb = new StringBuilder(); sb.append(eb.getNome() + ";" + eb.getEmail() + ";" + eb.getTelefone() + ";"); document.executeScript("informaDadosSolicitacao(\"" + sb.toString() + "\")"); } } public void salvar(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = 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; } SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean(); SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, WebUtil.getUsuarioSistema(request)); EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, WebUtil.getUsuarioSistema(request)); String ORIGEM = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ORIGEM_PADRAO_SOLICITACAO, ""); Integer idOrigem = (ORIGEM.trim().equalsIgnoreCase("") ? 0 : Integer.valueOf(ORIGEM.trim())); if(idOrigem != 0){ solicitacaoServicoDto.setIdServico(idOrigem); } String CONTRATO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTRATO_PADRAO, "0").trim(); Integer idContrato = (CONTRATO.equalsIgnoreCase("") ? 0 : Integer.valueOf(CONTRATO)); if(idContrato != 0){ solicitacaoServicoDto.setIdContrato(idContrato); } if(solicitacaoServicoDto.getIdServico() != null) { if (validaServico(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getIdServico())) { solicitacaoServicoDto.setIdOrigem(idOrigem); solicitacaoServicoDto.setUsuarioDto(usuario); solicitacaoServicoDto.setRegistradoPor(usuario.getNomeUsuario()); solicitacaoServicoDto.setEnviaEmailCriacao("S"); EmpregadoDTO empregadoDto = empregadoService.restoreByIdEmpregado(usuario.getIdEmpregado()); solicitacaoServicoDto.setIdUnidade(empregadoDto.getIdUnidade()); try { if (solicitacaoServicoDto.getIdSolicitacaoServico() == null || solicitacaoServicoDto.getIdSolicitacaoServico().intValue() == 0) { solicitacaoServicoDto = (SolicitacaoServicoDTO) solicitacaoServicoService.create(solicitacaoServicoDto); // document.alert("Registro efetuado com sucesso. Solicita��o N.o: " + solicitacaoServicoDto.getIdSolicitacaoServico() + " criada."); String comando = "mostraMensagemInsercao('" + UtilI18N.internacionaliza(request, "MSG05") + ".<br>" + UtilI18N.internacionaliza(request, "gerenciaservico.numerosolicitacao") + " <b><u>" + solicitacaoServicoDto.getIdSolicitacaoServico() + "</u></b> " + UtilI18N.internacionaliza(request, "citcorpore.comum.crida") + ".<br><br>" + UtilI18N.internacionaliza(request, "prioridade.prioridade") + ": " + solicitacaoServicoDto.getIdPrioridade(); if (solicitacaoServicoDto.getPrazoHH() > 0 || solicitacaoServicoDto.getPrazoMM() > 0) { comando = comando + " - SLA: " + solicitacaoServicoDto.getSLAStr() + ""; } comando = comando + "')"; document.executeScript(comando); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); Collection<UploadDTO> arquivosUpados = (Collection<UploadDTO>) request.getSession(true).getAttribute("colUploadsGED"); solicitacaoServicoDto.setColArquivosUpload(arquivosUpados); // Rotina para gravar no banco if (solicitacaoServicoDto.getColArquivosUpload() != null && solicitacaoServicoDto.getColArquivosUpload().size() > 0) { Integer idEmpresa = WebUtil.getIdEmpresa(request); if (idEmpresa == null) idEmpresa = 1; solicitacaoServicoService.gravaInformacoesGED(solicitacaoServicoDto.getColArquivosUpload(), idEmpresa, solicitacaoServicoDto, null); } return; } else { solicitacaoServicoService.updateInfo(solicitacaoServicoDto); document.alert(UtilI18N.internacionaliza(request, "MSG06")); } } catch (Exception e) { String msgErro = e.getMessage(); msgErro = msgErro.replaceAll("java.lang.Exception:", ""); msgErro = msgErro.replaceAll("br.com.citframework.excecao.ServiceException:", ""); msgErro = msgErro.replaceAll("br.com.citframework.excecao.LogicException:", ""); document.alert(msgErro); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); document.executeScript("fechar();"); }else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaolocalizado")); } } else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaoconfigurado")); } } public void carregaServico(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null); SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean(); String ORIGEM = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.SERVICO_PADRAO_SOLICITACAO, ""); Integer idServico = (ORIGEM.trim().equalsIgnoreCase("") ? 0 : Integer.valueOf(ORIGEM.trim())); if(idServico != 0){ solicitacaoServicoDto.setIdServico(idServico); } String CONTRATO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTRATO_PADRAO, "0").trim(); Integer idContrato = (CONTRATO.equalsIgnoreCase("") ? 0 : Integer.valueOf(CONTRATO)); if(idContrato != 0){ solicitacaoServicoDto.setIdContrato(idContrato); } ServicoDTO servicoDto = new ServicoDTO(); servicoDto.setIdServico(idServico); servicoDto = (ServicoDTO) servicoService.restore(servicoDto); /*Setando o tipo de demanda de servi�o*/ if(servicoDto!=null) { document.getElementById("idTipoDemandaServico").setValue(servicoDto.getIdTipoDemandaServico().toString()); } else { document.getElementById("idTipoDemandaServico").setValue(""); } ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null); ServicoContratoDTO temp = null; temp = servicoContratoService.findByIdContratoAndIdServico(solicitacaoServicoDto.getIdContrato(), idServico); if(temp != null) { /*Setando o id do Solicitante*/ document.getElementById("idServico").setValue(temp.getIdServico().toString()); }else { document.getElementById("idServico").setValue(""); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaoconfigurado")); } } public void carregaServico(DocumentHTML document, HttpServletRequest request, ContratoDTO contrato) throws Exception { ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null); SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean(); String ORIGEM = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ORIGEM_PADRAO_SOLICITACAO, ""); Integer idServico = (ORIGEM.trim().equalsIgnoreCase("") ? 0 : Integer.valueOf(ORIGEM.trim())); if(idServico != 0){ solicitacaoServicoDto.setIdServico(idServico); } String CONTRATO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTRATO_PADRAO, "0").trim(); Integer idContrato = (CONTRATO.equalsIgnoreCase("") ? 0 : Integer.valueOf(CONTRATO)); if(idContrato != 0){ solicitacaoServicoDto.setIdContrato(idContrato); } ServicoDTO servicoDto = new ServicoDTO(); servicoDto.setIdServico(idServico); servicoDto = (ServicoDTO) servicoService.restore(servicoDto); /*Setando o tipo de demanda de servi�o*/ if(servicoDto!=null) { document.getElementById("idTipoDemandaServico").setValue(servicoDto.getIdTipoDemandaServico().toString()); if(validaServico(idContrato, servicoDto.getIdServico())) { document.getElementById("idServico").setValue(idServico.toString()); document.getElementById("idContrato").setValue(idContrato.toString()); }else { document.getElementById("idServico").setValue(""); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaolocalizado")); } } else { document.getElementById("idTipoDemandaServico").setValue(""); document.getElementById("idServico").setValue(""); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaoconfigurado")); } } public boolean validaServico(Integer idContrato, Integer idServico) throws Exception { ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null); ServicoContratoDTO temp = null; temp = servicoContratoService.findByIdContratoAndIdServico(idContrato, idServico); if(temp != null) { return true; } return false; } }