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.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citcorpore.bean.ImpactoDTO; import br.com.centralit.citcorpore.bean.MatrizPrioridadeDTO; import br.com.centralit.citcorpore.bean.PrioridadeSolicitacoesDTO; import br.com.centralit.citcorpore.bean.UrgenciaDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.PrioridadeSolicitacoesService; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; /** * Classe que representa o form do Cadastro de Prioridade * * @author rodrigo.oliveira * */ @SuppressWarnings({"rawtypes", "unchecked"}) public class PrioridadeSolicitacoes extends AjaxFormAction { private PrioridadeSolicitacoesService prioridadeSolicitacoesService; @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; } carregaValoresImpacto(document, request); carregaValoresUrgencia(document, request); carregaValoresMatriz(document, request); } @Override public Class getBeanClass() { return PrioridadeSolicitacoesDTO.class; } private void carregaValoresImpacto(DocumentHTML document, HttpServletRequest request) throws ServiceException, Exception{ document.getElementById("NIVELIMPACTOSERELIALIZADO").setValue(""); List<ImpactoDTO> lista = new ArrayList(getPrioridadeSolicitacoesService(request).consultaImpacto()); for(ImpactoDTO impacto : lista){ if(impacto != null && impacto.getSiglaImpacto() != null && impacto.getSiglaImpacto().length() > 1) impacto.setSiglaImpacto(impacto.getSiglaImpacto().substring(0, 1)); } String impactoSerelializado = br.com.citframework.util.WebUtil.serializeObjects(lista, WebUtil.getLanguage(request)); document.getElementById("NIVELIMPACTOSERELIALIZADO").setValue(impactoSerelializado); document.executeScript("carregaImpacto();"); } private void carregaValoresUrgencia(DocumentHTML document, HttpServletRequest request) throws ServiceException, Exception{ document.getElementById("NIVELURGENCIASERELIALIZADO").setValue(""); List<UrgenciaDTO> lista = new ArrayList(getPrioridadeSolicitacoesService(request).consultaUrgencia()); for(UrgenciaDTO urgencia : lista){ if(urgencia != null && urgencia.getSiglaUrgencia() != null && urgencia.getSiglaUrgencia().length() > 1) urgencia.setSiglaUrgencia(urgencia.getSiglaUrgencia().substring(0, 1)); } String urgenciaSerelializado = br.com.citframework.util.WebUtil.serializeObjects(lista, WebUtil.getLanguage(request)); document.getElementById("NIVELURGENCIASERELIALIZADO").setValue(urgenciaSerelializado); document.executeScript("carregaUrgencia();"); } private void carregaValoresMatriz(DocumentHTML document, HttpServletRequest request) throws ServiceException, Exception{ Collection<MatrizPrioridadeDTO> listaMatriz = getPrioridadeSolicitacoesService(request).consultaMatrizPrioridade(); if(listaMatriz != null && listaMatriz.size() > 0){ document.executeScript("deleteAllRows()"); document.executeScript("countMatriz = 0"); for (MatrizPrioridadeDTO matrizPrioridadeDTO : listaMatriz) { ImpactoDTO impacto = new ImpactoDTO(); if(matrizPrioridadeDTO != null){ impacto.setSiglaImpacto(matrizPrioridadeDTO.getSiglaImpacto()); } impacto = (ImpactoDTO) getPrioridadeSolicitacoesService(request).restoreImpactoBySigla(impacto); UrgenciaDTO urgencia = new UrgenciaDTO(); if(matrizPrioridadeDTO != null){ urgencia.setSiglaUrgencia(matrizPrioridadeDTO.getSiglaUrgencia()); } urgencia = (UrgenciaDTO) getPrioridadeSolicitacoesService(request).restoreUrgenciaBySigla(urgencia); if(matrizPrioridadeDTO != null && impacto != null && urgencia != null){ document.executeScript("insereRow('"+impacto.getSiglaImpacto()+"', '"+impacto.getNivelImpacto()+"', " + "'"+urgencia.getSiglaUrgencia()+"', '"+urgencia.getNivelUrgencia()+"', "+matrizPrioridadeDTO.getValorPrioridade()+");"); } } document.executeScript("exibeCadastroMatriz()"); document.executeScript("exibeGrid()"); geraComboImpacto(document, request); geraComboUrgencia(document, request); document.executeScript("$('#divBotaoMatrizPrioridade').remove();"); } } public void saveImpacto(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<ImpactoDTO> listaImpacto = ((ArrayList<ImpactoDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ImpactoDTO.class, "NIVELIMPACTOSERELIALIZADO", request)); int a = verificaImpacto(listaImpacto); if(a != -1){ document.alert(UtilI18N.internacionaliza(request, "prioridadesolicitacao.registrosiguais")); document.executeScript("removeLinha('tabelaImpacto',"+a+")"); return; } if(listaImpacto != null){ // listaImpacto = verificaImpactoExiste(request, listaImpacto); // if(listaImpacto == null){ // document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado")); // return; // } getPrioridadeSolicitacoesService(request).deleteImpacto(); for (ImpactoDTO impacto : listaImpacto) { String nivel = impacto.getNivelImpacto().trim(); String sigla = impacto.getSiglaImpacto().trim(); if((nivel == null || nivel.isEmpty()) || (sigla == null || sigla.isEmpty())){ document.alert(UtilI18N.internacionaliza(request, "prioridade.cadastro.preenchimento")); return; } getPrioridadeSolicitacoesService(request).createImpacto(impacto); } document.alert(UtilI18N.internacionaliza(request, "MSG05")); geraComboImpacto(document, request); }else{ getPrioridadeSolicitacoesService(request).deleteImpacto(); document.alert(UtilI18N.internacionaliza(request, "MSG11")); } } public void saveUrgencia(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<UrgenciaDTO> listaUrgencia = ((ArrayList<UrgenciaDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(UrgenciaDTO.class, "NIVELURGENCIASERELIALIZADO", request)); if(listaUrgencia != null){ int a = verificaUrgencia(listaUrgencia); if(a != -1){ document.alert(UtilI18N.internacionaliza(request, "prioridadesolicitacao.registrosiguais")); document.executeScript("removeLinha('tabelaUrgencia',"+a+")"); return; } // listaUrgencia = verificaUrgenciaExiste(request, listaUrgencia); // if(listaUrgencia == null){ // document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado")); // return; // } getPrioridadeSolicitacoesService(request).deleteUrgencia(); for (UrgenciaDTO urgencia : listaUrgencia) { String nivel = urgencia.getNivelUrgencia().trim(); String sigla = urgencia.getSiglaUrgencia().trim(); if((nivel == null || nivel.isEmpty()) || (sigla == null || sigla.isEmpty())){ document.alert(UtilI18N.internacionaliza(request, "prioridade.cadastro.preenchimento")); return; } getPrioridadeSolicitacoesService(request).createUrgencia(urgencia); } document.alert(UtilI18N.internacionaliza(request, "MSG05")); geraComboUrgencia(document, request); }else{ getPrioridadeSolicitacoesService(request).deleteUrgencia(); document.alert(UtilI18N.internacionaliza(request, "MSG11")); } } public void saveMatrizPrioridade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<MatrizPrioridadeDTO> listaMatriz = (ArrayList<MatrizPrioridadeDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(MatrizPrioridadeDTO.class, "MATRIZPRIORIDADESERELIALIZADO", request); if(listaMatriz != null){ getPrioridadeSolicitacoesService(request).deleteMatrizPrioridade(); for (MatrizPrioridadeDTO matrizPrioridade : listaMatriz) { getPrioridadeSolicitacoesService(request).createMatrizPrioridade(matrizPrioridade); } document.alert(UtilI18N.internacionaliza(request, "MSG05")); }else{ getPrioridadeSolicitacoesService(request).deleteMatrizPrioridade(); document.alert(UtilI18N.internacionaliza(request, "MSG05")); } } public void cadastrarMatriz(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { boolean flag = getPrioridadeSolicitacoesService(request).consultaCadastros(); if(flag){ geraComboImpacto(document, request); geraComboUrgencia(document, request); document.executeScript("exibeCadastroMatriz();"); document.executeScript("$('#divBotaoMatrizPrioridade').remove();"); }else{ document.alert(UtilI18N.internacionaliza(request, "prioridade.matrizprioridade.alert.erro")); } } private void geraComboImpacto(DocumentHTML document, HttpServletRequest request) throws Exception { HTMLSelect combo = (HTMLSelect) document.getSelectById("IDIMPACTOSELECT"); combo.removeAllOptions(); combo.addOption(String.valueOf(0), UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); Collection<ImpactoDTO> lista = getPrioridadeSolicitacoesService(request).consultaImpacto(); if (lista != null) { for (ImpactoDTO j : lista) { combo.addOption(j.getSiglaImpacto().toString(), j.getNivelImpacto()); } } } private void geraComboUrgencia(DocumentHTML document, HttpServletRequest request) throws Exception { HTMLSelect combo = (HTMLSelect) document.getSelectById("IDURGENCIASELECT"); combo.removeAllOptions(); combo.addOption(String.valueOf(0), UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); Collection<UrgenciaDTO> lista = getPrioridadeSolicitacoesService(request).consultaUrgencia(); if (lista != null) { for (UrgenciaDTO j : lista) { combo.addOption(j.getSiglaUrgencia().toString(), j.getNivelUrgencia()); } } } /** * @return the prioridadeSolicitacoesService * @throws Exception * @throws ServiceException */ public PrioridadeSolicitacoesService getPrioridadeSolicitacoesService(HttpServletRequest request) throws ServiceException, Exception { if(prioridadeSolicitacoesService == null){ prioridadeSolicitacoesService = (PrioridadeSolicitacoesService) ServiceLocator.getInstance().getService(PrioridadeSolicitacoesService.class, WebUtil.getUsuarioSistema(request)); } return prioridadeSolicitacoesService; } private Integer verificaImpacto(Collection<ImpactoDTO> listaImpacto){ int auxa = 0; if(listaImpacto != null){ for (ImpactoDTO impacto : listaImpacto) { String nivel = impacto.getNivelImpacto().trim(); String sigla = impacto.getSiglaImpacto().trim(); int auxb = 0; for (ImpactoDTO imp : listaImpacto) { if(auxa == auxb){ auxb++; continue; } String nvl = imp.getNivelImpacto().trim(); String sga = imp.getSiglaImpacto().trim(); if(nvl.equalsIgnoreCase(nivel) || sga.equalsIgnoreCase(sigla)){ return auxb; } auxb++; } auxa++; } return -1; } return null; } private Integer verificaUrgencia(Collection<UrgenciaDTO> listaUrgencia){ int auxa = 0; if(listaUrgencia != null){ for (UrgenciaDTO impacto : listaUrgencia) { String nivel = impacto.getNivelUrgencia().trim(); String sigla = impacto.getSiglaUrgencia().trim(); int auxb = 0; for (UrgenciaDTO imp : listaUrgencia) { if(auxa == auxb){ auxb++; continue; } String nvl = imp.getNivelUrgencia().trim(); String sga = imp.getSiglaUrgencia().trim(); if(nvl.equalsIgnoreCase(nivel) || sga.equalsIgnoreCase(sigla)){ return auxb; } auxb++; } auxa++; } return -1; } return null; } }