package br.com.centralit.citcorpore.ajaxForms; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.bpm.dto.TipoFluxoDTO; import br.com.centralit.bpm.servico.FluxoService; import br.com.centralit.bpm.servico.TipoFluxoService; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLForm; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citcorpore.bean.ProcessoNegocioDTO; import br.com.centralit.citcorpore.bean.ProcessoNivelAutoridadeDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.GrupoService; import br.com.centralit.citcorpore.negocio.NivelAutoridadeService; import br.com.centralit.citcorpore.negocio.ProcessoNegocioService; import br.com.centralit.citcorpore.negocio.ProcessoNivelAutoridadeService; 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; @SuppressWarnings({ "rawtypes", "unchecked" }) public class ProcessoNegocio extends AjaxFormAction { @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; } document.executeScript("GRID_AUTORIDADES.deleteAllRows();"); NivelAutoridadeService nivelAutoridadeService = (NivelAutoridadeService) ServiceLocator.getInstance().getService(NivelAutoridadeService.class, WebUtil.getUsuarioSistema(request)); request.setAttribute("colAutoridades", nivelAutoridadeService.list()); GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, WebUtil.getUsuarioSistema(request)); HTMLSelect idGrupoExecutor = (HTMLSelect) document.getSelectById("idGrupoExecutor"); idGrupoExecutor.removeAllOptions(); idGrupoExecutor.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); HTMLSelect idGrupoAdministrador = (HTMLSelect) document.getSelectById("idGrupoAdministrador"); idGrupoAdministrador.removeAllOptions(); idGrupoAdministrador.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); Collection colGrupos = grupoService.list(); if(colGrupos != null && !colGrupos.isEmpty()) { idGrupoExecutor.addOptions(colGrupos, "idGrupo", "nome", null); idGrupoAdministrador.addOptions(colGrupos, "idGrupo", "nome", null); } FluxoService fluxoService = (FluxoService) ServiceLocator.getInstance().getService(FluxoService.class, WebUtil.getUsuarioSistema(request)); request.setAttribute("colTiposFluxo", fluxoService.list()); } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ProcessoNegocioDTO processoNegocioDto = (ProcessoNegocioDTO) document.getBean(); ProcessoNegocioService processoNegocioService = (ProcessoNegocioService) ServiceLocator.getInstance().getService(ProcessoNegocioService.class, null); if (processoNegocioDto == null || processoNegocioDto.getIdProcessoNegocio() == null) return; processoNegocioDto = (ProcessoNegocioDTO) processoNegocioService.restore(processoNegocioDto); if (processoNegocioDto != null) { HTMLForm form = document.getForm("form"); form.clear(); form.setValues(processoNegocioDto); ProcessoNivelAutoridadeService processoNivelAutoridadeService = (ProcessoNivelAutoridadeService) ServiceLocator.getInstance().getService(ProcessoNivelAutoridadeService.class, null); Collection<ProcessoNivelAutoridadeDTO> colAutoridades = processoNivelAutoridadeService.findByIdProcessoNegocio(processoNegocioDto.getIdProcessoNegocio()); document.executeScript("GRID_AUTORIDADES.deleteAllRows();"); if (colAutoridades != null) { int i = 0; for (ProcessoNivelAutoridadeDTO processoNivelAutoridadeDto : colAutoridades) { i++; document.executeScript("GRID_AUTORIDADES.addRow()"); processoNivelAutoridadeDto.setSequencia(i); document.executeScript("seqAutoridade = NumberUtil.zerosAEsquerda(" + i + ",5)"); document.executeScript("exibeAutoridade('" + br.com.citframework.util.WebUtil.serializeObject(processoNivelAutoridadeDto, WebUtil.getLanguage(request)) + "')"); } } TipoFluxoService tipoFluxoService = (TipoFluxoService) ServiceLocator.getInstance().getService(TipoFluxoService.class, WebUtil.getUsuarioSistema(request)); Collection<TipoFluxoDTO> colTiposFluxo = tipoFluxoService.findByIdProcessoNegocio(processoNegocioDto.getIdProcessoNegocio()); document.executeScript("clearAllCheckBoxIdTipoFluxo()"); if (colTiposFluxo != null){ for (TipoFluxoDTO tipoFluxoDto : colTiposFluxo) { document.executeScript("selectCheckBoxIdTipoFluxo('" + tipoFluxoDto.getIdTipoFluxo() + "')"); } } } } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ProcessoNegocioDTO processoNegocioDto = (ProcessoNegocioDTO) document.getBean(); ProcessoNegocioService processoNegocioService = (ProcessoNegocioService) ServiceLocator.getInstance().getService(ProcessoNegocioService.class, null); processoNegocioDto.setColAutoridades(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ProcessoNivelAutoridadeDTO.class, "colAutoridades_Serialize", request)); if (processoNegocioDto.getPermissaoSolicitacao() == null) processoNegocioDto.setPermissaoSolicitacao("T"); if (processoNegocioDto.getIdProcessoNegocio() == null) { processoNegocioService.create(processoNegocioDto); document.alert(UtilI18N.internacionaliza(request, "MSG05")); } else { processoNegocioService.update(processoNegocioDto); document.alert(UtilI18N.internacionaliza(request, "MSG06")); } HTMLForm form = document.getForm("form"); form.clear(); document.setBean(new ProcessoNegocioDTO()); load(document, request, response); } @Override public Class getBeanClass() { return ProcessoNegocioDTO.class; } }