package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.FluxoServicoDTO; import br.com.centralit.citcorpore.bean.ServicoContratoDTO; import br.com.centralit.citcorpore.bean.ServicoDTO; import br.com.centralit.citcorpore.integracao.ServicoDao; import br.com.centralit.citcorpore.negocio.ServicoContratoService; import br.com.centralit.citcorpore.negocio.ServicoService; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilI18N; /** * * @author Cledson.junior * */ @SuppressWarnings({ "unused", "unchecked" }) public class ServicoContratoMulti extends ServicoContrato { /** * Inclui registro. * * @param document * @param request * @param response * @throws Exception */ public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) document.getBean(); ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, WebUtil.getUsuarioSistema(request)); List<FluxoServicoDTO> listFluxoServicoDTO = (ArrayList<FluxoServicoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(FluxoServicoDTO.class, "fluxosSerializados", request); List<ServicoDTO> listServicoDto = (ArrayList<ServicoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ServicoDTO.class, "servicosSerializados", request); if (listServicoDto == null || listServicoDto.isEmpty()) { document.alert(UtilI18N.internacionaliza(request, "servicoContrato.selecioneServicos")); document.executeScript("JANELA_AGUARDE_MENU.hide()"); return; } servicoContratoDTO.setListaFluxo((listFluxoServicoDTO == null ? new ArrayList<FluxoServicoDTO>() : listFluxoServicoDTO)); servicoContratoDTO.setListaServico((listServicoDto == null ? new ArrayList<ServicoDTO>() : listServicoDto)); try { if (servicoContratoDTO.getIdServicoContrato() == null || servicoContratoDTO.getIdServicoContrato().intValue() == 0) { for (ServicoDTO servicoDto : servicoContratoDTO.getListaServico()) { servicoContratoDTO.setIdServico(servicoDto.getIdServico()); servicoContratoDTO = (ServicoContratoDTO) servicoContratoService.create(servicoContratoDTO); } } document.alert(UtilI18N.internacionaliza(request, "MSG05")); } catch (Exception e) { e.printStackTrace(); } document.executeScript("closePopup();"); document.executeScript("JANELA_AGUARDE_MENU.show()"); } /** * Restaura a lista de todos os servi�os para a tela de Adicionar V�rios Servi�os ao Contrato. * altera��o: de servicos ativos que ainda n�o foram adicionados a este contrato * * @param document * @param request * @param response * @throws Exception * @author valdoilo.damasceno * @author thays.araujo * */ public void adicionarTodosOsServicos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ServicoContratoDTO servicoContratoDto = (ServicoContratoDTO) document.getBean(); ServicoDTO servicoDto = new ServicoDTO(); ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null); Collection<ServicoDTO> listAtivosDiferenteContrato = null; if(servicoContratoDto.getIdContrato()!=null){ servicoDto.setIdContrato(servicoContratoDto.getIdContrato()); listAtivosDiferenteContrato = servicoService.listAtivosDiferenteContrato(servicoDto); } if (listAtivosDiferenteContrato != null && !listAtivosDiferenteContrato.isEmpty()) { for (ServicoDTO servicoDTO : listAtivosDiferenteContrato) { document.executeScript("addLinhaTabelaServico(" + servicoDTO.getIdServico() + ",'" + servicoDTO.getNomeServico() + "')"); } }else{ } document.executeScript("JANELA_AGUARDE_MENU.hide()"); } /** * Metodo para adicionar na grid os servicos checkados. * @param document * @param request * @param response * @throws Exception * @author thays.araujo */ public void adicionaTabelaLOOKUP_SERVICOATIVOS_DIFERENTE_CONTRATO(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)throws Exception{ ServicoContratoDTO servicoContratoDto = (ServicoContratoDTO) document.getBean(); ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, WebUtil.getUsuarioSistema(request)); ServicoDao servicoDao = new ServicoDao(); servicoContratoDto.setColAllLOOKUP_SERVICOATIVOS_DIFERENTE_CONTRATO(servicoContratoDto.getColAllLOOKUP_SERVICOATIVOS_DIFERENTE_CONTRATO()); servicoContratoDto.setColServicosCheckado(servicoContratoDto.getColAllLOOKUP_SERVICOATIVOS_DIFERENTE_CONTRATO()); //Declarando arrays de strings ArrayList<String> listaValoresGrid = new ArrayList<String>(); ArrayList<String> listaValoresCheckados = new ArrayList<String>(); List<ServicoDTO> listServicoDto = (ArrayList<ServicoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ServicoDTO.class, "servicosSerializados", request); if (listServicoDto != null){ for (ServicoDTO servicoDto : listServicoDto){ listaValoresGrid.add(servicoDto.getIdServico().toString()); } } if(servicoContratoDto.getColServicosCheckado()!=null ){ for (String servicoCheckado : servicoContratoDto.getColServicosCheckado()){ listaValoresCheckados.add(servicoCheckado); } } //Neste trecho do codigo adiciona a uma Collection os valores que NAO est�o se repetindo entre os dois Arrays Set<String> valoresUnicosGrid = new HashSet<String>(); valoresUnicosGrid.addAll(listaValoresGrid); valoresUnicosGrid.addAll(listaValoresCheckados); //chamando pelo DAO o objeto referente aos ids checkados e setando na collection problemas retorno Set<ServicoDTO> servicoRetorno = new HashSet<ServicoDTO>(); ServicoDTO servicoDTO = new ServicoDTO(); document.executeScript("limparTabelaServicos();"); for (String idServicoCheckado : valoresUnicosGrid){ if (idServicoCheckado != null && !idServicoCheckado.equals("")){ Integer idServicoCheckados = Integer.parseInt(idServicoCheckado); servicoDTO.setIdServico(Integer.parseInt(idServicoCheckado)); servicoDTO = (ServicoDTO) servicoDao.restore(servicoDTO); document.executeScript("addLinhaTabelaServico(" + servicoDTO.getIdServico() + ",'" + servicoDTO.getNomeServico() + "')"); }else { continue; } } } /** * Restaura os dados ao clicar em um registro. * * @param document * @param request * @param response * @throws Exception */ public Class<ServicoContratoDTO> getBeanClass() { return ServicoContratoDTO.class; } }