package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; 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.citajax.html.HTMLForm; import br.com.centralit.citcorpore.bean.ClienteDTO; import br.com.centralit.citcorpore.bean.ContratoDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.FornecedorDTO; import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO; import br.com.centralit.citcorpore.bean.OrigemAtendimentoDTO; 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.TipoDemandaServicoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.ClienteService; import br.com.centralit.citcorpore.negocio.ContratoService; import br.com.centralit.citcorpore.negocio.ContratosGruposService; import br.com.centralit.citcorpore.negocio.FornecedorService; import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService; import br.com.centralit.citcorpore.negocio.OrigemAtendimentoService; 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.negocio.TipoDemandaServicoService; 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.UtilDatas; import br.com.citframework.util.UtilI18N; public class SolicitacaoServicoMultiContratosPortal2 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; } 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); OrigemAtendimentoService origemAtendimentoService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null); List<GrupoEmpregadoDTO> listGrupos = (ArrayList<GrupoEmpregadoDTO>) grupoService.findByIdEmpregado(usuario.getIdEmpregado()); String contratoTxt = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTRATO_PADRAO, "0").trim(); String origemTxt = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ORIGEM_PADRAO_SOLICITACAO, "2"); Integer idContrato = null; Integer idOrigem = null; ContratoDTO contrato = null; OrigemAtendimentoDTO origemAtendimentoDTO = null; try { idContrato = (contratoTxt.equalsIgnoreCase("") ? 0 : Integer.valueOf(contratoTxt)); contrato = new ContratoDTO(); contrato.setIdContrato(idContrato); contrato = (ContratoDTO) contratoService.restore(contrato); idOrigem = (origemTxt.equalsIgnoreCase("") ? 0 : Integer.valueOf(origemTxt)); origemAtendimentoDTO = new OrigemAtendimentoDTO(); origemAtendimentoDTO.setIdOrigem(idOrigem); origemAtendimentoDTO = (OrigemAtendimentoDTO) origemAtendimentoService.restore(origemAtendimentoDTO); } catch(Exception e) { e.printStackTrace(); } /*Realiza a listagem de grupos empregados*/ if (listGrupos!=null && contrato!=null) { if(origemAtendimentoDTO != 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"; } if (COLABORADORES_VINC_CONTRATOS != null && COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("N")) { restaurarInformacoes(document, request, contrato); } else { // if(contratosGruposService.hasContrato(listGrupos, contrato)) { restaurarInformacoes(document, request, contrato); // } else { //Fun��o espec�fica para exibir somente um popup no IE // document.executeScript("cancelarUsuarioContrato()"); //document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.usuarioContratoNaoLocalizado")); // } } } else { document.executeScript("cancelar()"); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.origemSolicitacaoNaoLocalizada")); } } else { document.executeScript("cancelar()"); document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.contratoNaoLocalizado")); } } public void save(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)); if(solicitacaoServicoDto.getIdUnidade() == null) { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.solicitanteunidade")); document.executeScript("cancelar()"); return; } ServicoContratoService servicoContratoServico = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, WebUtil.getUsuarioSistema(request)); ServicoContratoDTO servicoContratoDto= null; //Insere grupo Executor padr�o if(solicitacaoServicoDto.getIdContrato() != null && solicitacaoServicoDto.getIdServico() != null ){ servicoContratoDto = servicoContratoServico.findByIdContratoAndIdServico(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getIdServico()); if(servicoContratoDto!= null && servicoContratoDto.getIdGrupoExecutor() != null){ solicitacaoServicoDto.setIdGrupoAtual(servicoContratoDto.getIdGrupoExecutor()); } } if(solicitacaoServicoDto.getIdServico() != null) { if (validaServico(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getIdServico())) { solicitacaoServicoDto.setUsuarioDto(usuario); solicitacaoServicoDto.setRegistradoPor(usuario.getNomeUsuario()); solicitacaoServicoDto.setEnviaEmailCriacao("S"); 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('" +"<H3>"+ 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 +"</H3>"+ "')"; document.executeScript(comando); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); document.executeScript("parent.atualizarLista();"); 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(); document.executeScript("parent.atualizarLista();"); return; } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); document.executeScript("fechar();"); document.executeScript("parent.atualizarLista();"); }else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaolocalizado")); document.executeScript("cancelar()"); } } else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaoconfigurado")); document.executeScript("cancelar()"); } } public void restaurarInformacoes(DocumentHTML document, HttpServletRequest request, ContratoDTO contrato) throws Exception { ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null); OrigemAtendimentoService origemAtendimentoService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null); TipoDemandaServicoService tipoDemandaServicoService = (TipoDemandaServicoService) ServiceLocator.getInstance().getService(TipoDemandaServicoService.class, null); HTMLForm form = document.getForm("form"); SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean(); EmpregadoDTO empregadoDTO = this.getEmpregadoService().restoreByIdEmpregado(WebUtil.getUsuario(request).getIdEmpregado()); if(empregadoDTO != null) { solicitacaoServicoDto.setIdSolicitante(empregadoDTO.getIdEmpregado()); solicitacaoServicoDto.setSolicitante(empregadoDTO.getNome()); solicitacaoServicoDto.setNomecontato(empregadoDTO.getNome()); solicitacaoServicoDto.setEmailcontato(empregadoDTO.getEmail()); solicitacaoServicoDto.setTelefonecontato(empregadoDTO.getTelefone()); solicitacaoServicoDto.setIdUnidade(empregadoDTO.getIdUnidade()); document.executeScript( "$('#nomecontatotxt').text(\"" + empregadoDTO.getNome() + "\");" + " $('#emailcontatotxt').text(\"" + empregadoDTO.getEmail() + "\");" + " $('#telefonecontatotxt').text(\"" + empregadoDTO.getTelefone() + "\");"); } String ORIGEM = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.ORIGEM_PADRAO_SOLICITACAO, "2"); Integer idOrigem = (ORIGEM.trim().equalsIgnoreCase("") ? 0 : Integer.valueOf(ORIGEM.trim())); if(idOrigem != 0){ OrigemAtendimentoDTO atendimentoDTO = new OrigemAtendimentoDTO(); atendimentoDTO.setIdOrigem(idOrigem); atendimentoDTO = (OrigemAtendimentoDTO) origemAtendimentoService.restore(atendimentoDTO); if(atendimentoDTO != null) { solicitacaoServicoDto.setIdOrigem(atendimentoDTO.getIdOrigem()); solicitacaoServicoDto.setOrigem(atendimentoDTO.getDescricao()); } } String SERVICO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.SERVICO_PADRAO_SOLICITACAO, ""); Integer idServico = (SERVICO.trim().equalsIgnoreCase("") ? 0 : Integer.valueOf(SERVICO.trim())); if(idServico != 0){ if(validaServico(contrato.getIdContrato(), idServico)) { solicitacaoServicoDto.setIdServico(idServico); solicitacaoServicoDto.setIdContrato(contrato.getIdContrato()); ServicoDTO servicoDto = new ServicoDTO(); servicoDto.setIdServico(idServico); servicoDto = (ServicoDTO) servicoService.restore(servicoDto); /*Setando o tipo de demanda de servi�o*/ if(servicoDto!=null) { solicitacaoServicoDto.setNomeServico(servicoDto.getNomeServico()); TipoDemandaServicoDTO demandaServicoDTO = new TipoDemandaServicoDTO(); demandaServicoDTO.setIdTipoDemandaServico(servicoDto.getIdTipoDemandaServico()); demandaServicoDTO = (TipoDemandaServicoDTO)tipoDemandaServicoService.restore(demandaServicoDTO); if(demandaServicoDTO != null) { solicitacaoServicoDto.setIdTipoDemandaServico(demandaServicoDTO.getIdTipoDemandaServico()); solicitacaoServicoDto.setNomeTipoDemandaServico(demandaServicoDTO.getNomeTipoDemandaServico()); } } /* Rodrigo Pecci Acorse - 08/11/2013 10h05 - #123390 Linha comentada pois estava tentando abrir o modal 2 vezes e causava problemas no ie. */ //document.executeScript("abrir();"); } else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaolocalizado")); document.executeScript("cancelar()"); } } else { document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.servicoPadraoNaoconfigurado")); document.executeScript("cancelar()"); } setaNomeContrato(solicitacaoServicoDto, contrato); form.setValues(solicitacaoServicoDto); } private void setaNomeContrato(SolicitacaoServicoDTO solicitacaoServicoDTO, ContratoDTO contrato) throws Exception{ ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, null); FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null); String nomeCliente = ""; String nomeForn = ""; ClienteDTO clienteDto = new ClienteDTO(); clienteDto.setIdCliente(contrato.getIdCliente()); clienteDto = (ClienteDTO) clienteService.restore(clienteDto); if (clienteDto != null) { nomeCliente = clienteDto.getNomeRazaoSocial(); } FornecedorDTO fornecedorDto = new FornecedorDTO(); fornecedorDto.setIdFornecedor(contrato.getIdFornecedor()); fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto); if (fornecedorDto != null) { nomeForn = fornecedorDto.getRazaoSocial(); } if (contrato.getSituacao().equalsIgnoreCase("A")) { String nomeContrato = "" + contrato.getNumero() + " de " + UtilDatas.dateToSTR(contrato.getDataContrato()) + " (" + nomeCliente + " - " + nomeForn + ")"; solicitacaoServicoDTO.setNomeContrato(nomeContrato); } } 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; } }