package gcom.gui.cobranca; import gcom.cobranca.CobrancaAcaoAtividadeCronograma; import gcom.cobranca.CobrancaAcaoCronograma; import gcom.cobranca.CobrancaAtividade; import gcom.cobranca.CobrancaGrupo; import gcom.cobranca.CobrancaGrupoCronogramaMes; import gcom.cobranca.FiltroCobrancaAcaoAtividadeCronograma; import gcom.cobranca.FiltroCobrancaAcaoCronograma; import gcom.cobranca.FiltroCobrancaAtividade; import gcom.cobranca.FiltroCobrancaGrupo; import gcom.cobranca.FiltroCobrancaGrupoCronogramaMes; import gcom.cobranca.bean.CobrancaCronogramaHelper; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class ExibirAtualizarCobrancaCronogramaAction extends GcomAction { /** * [UC00313] Manter Cronograma Cobran�a * * @author Fl�vio Cordeiro * * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("atualizarCobrancaCronograma"); CobrancaActionForm cobrancaActionForm = (CobrancaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); String voltaFiltro = httpServletRequest.getParameter("filtro"); if (voltaFiltro != null && !voltaFiltro.trim().equals("")) { sessao.setAttribute("voltaFiltro", true); } if (httpServletRequest.getParameter("reloadPage") == null) { String idCobrancaGrupoCronogramaMensal = ""; if (httpServletRequest.getParameter("idRegistroAtualizacao") != null) { idCobrancaGrupoCronogramaMensal = httpServletRequest .getParameter("idRegistroAtualizacao"); sessao.setAttribute("idCobrancaGrupoCronogramaMensal", idCobrancaGrupoCronogramaMensal); } else { if (sessao.getAttribute("idRegistroAtualizacao") != null) { idCobrancaGrupoCronogramaMensal = (String) sessao .getAttribute("idRegistroAtualizacao"); } else { idCobrancaGrupoCronogramaMensal = (String) sessao .getAttribute("idCobrancaGrupoCronogramaMensal"); } } cobrancaActionForm .setIdCobrancaGrupoCronogramaMes(idCobrancaGrupoCronogramaMensal); FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo(); filtroCobrancaGrupo.setCampoOrderBy(FiltroCobrancaGrupo.DESCRICAO); Collection colecaoCobrancaGrupo = fachada.pesquisar( filtroCobrancaGrupo, CobrancaGrupo.class.getName()); sessao.setAttribute("colecaoCobrancaGrupo", colecaoCobrancaGrupo); /** * Para montar o cronograma de exibicao � necess�rio montar uma * cole��o de CobrancaCronogramaHelper. Para montar cada objeto * helper � preciso montar um objeto CobrancaGrupoAcaoCronogramaMes, * um objeto CobrancaAcaoCronograma e uma colecao de * CobrancaAcaoAtividadeCronograma. * * O c�digo abaixo serve para montar tais objetos apartir do id de * CobrancaGrupoCronogramaMes. */ FiltroCobrancaGrupoCronogramaMes filtroCobrancaGrupoCronogramaMes = new FiltroCobrancaGrupoCronogramaMes(); filtroCobrancaGrupoCronogramaMes .adicionarCaminhoParaCarregamentoEntidade("cobrancaGrupo"); filtroCobrancaGrupoCronogramaMes .adicionarParametro(new ParametroSimples( FiltroCobrancaGrupoCronogramaMes.ID, idCobrancaGrupoCronogramaMensal)); Collection colecaoCobrancaGrupoCronogramaMes = fachada.pesquisar( filtroCobrancaGrupoCronogramaMes, CobrancaGrupoCronogramaMes.class.getName()); Collection colecaoCobrancaCronogramaHelper = new ArrayList(); Collection colecaoCobrancaCronogramaHelperErroAtualizacao = new ArrayList(); CobrancaCronogramaHelper cobrancaCronogramaHelper = null; CobrancaGrupoCronogramaMes cobrancaGrupoCronogramaMes = null; CobrancaAcaoCronograma cobrancaAcaoCronograma = null; // CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = // null; if (!colecaoCobrancaGrupoCronogramaMes.isEmpty()) { Iterator iteratorCobrancagrupoCronogramaMes = colecaoCobrancaGrupoCronogramaMes .iterator(); FiltroCobrancaAcaoCronograma filtroCobrancaAcaoCronograma = null; Collection colecaoCobrancaAcaoCronograma = null; while (iteratorCobrancagrupoCronogramaMes.hasNext()) { cobrancaGrupoCronogramaMes = (CobrancaGrupoCronogramaMes) iteratorCobrancagrupoCronogramaMes .next(); sessao.setAttribute("cobrancaGrupoCronogramaMes", cobrancaGrupoCronogramaMes); filtroCobrancaAcaoCronograma = new FiltroCobrancaAcaoCronograma(); filtroCobrancaAcaoCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAcao.cobrancaAcaoPredecessora"); filtroCobrancaAcaoCronograma .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoCronograma.ID_COBRANCA_GRUPO_CRONOGRAMA_MES, idCobrancaGrupoCronogramaMensal)); filtroCobrancaAcaoCronograma .setCampoOrderBy(FiltroCobrancaAcaoCronograma.COBRANCA_ACAO_ORDEM_REALIZACAO); colecaoCobrancaAcaoCronograma = fachada.pesquisar( filtroCobrancaAcaoCronograma, CobrancaAcaoCronograma.class.getName()); if (!colecaoCobrancaAcaoCronograma.isEmpty()) { Iterator iteratorCobrancaAcaoCronograma = colecaoCobrancaAcaoCronograma .iterator(); FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = null; List colecaoCobrancaAcaoAtividadeCronograma = null; while (iteratorCobrancaAcaoCronograma.hasNext()) { cobrancaCronogramaHelper = new CobrancaCronogramaHelper(); cobrancaAcaoCronograma = (CobrancaAcaoCronograma) iteratorCobrancaAcaoCronograma .next(); filtroCobrancaAcaoAtividadeCronograma = new FiltroCobrancaAcaoAtividadeCronograma(); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAtividade"); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoCronograma.cobrancaAcao.cobrancaAcaoPredecessora"); filtroCobrancaAcaoAtividadeCronograma .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ACAO_CRONOGRAMA, cobrancaAcaoCronograma.getId())); filtroCobrancaAcaoAtividadeCronograma .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ATIVIDADE_INDICADOR_CRONOGRAMA, CobrancaAtividade.ATIVO_CRONOGRAMA)); filtroCobrancaAcaoAtividadeCronograma .setCampoOrderBy(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ATIVIDADE_ORDEM_REALIZACAO); colecaoCobrancaAcaoAtividadeCronograma = (List) fachada .pesquisar( filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class .getName()); if (sessao .getAttribute("atividadesCobrancaObrigatoriedadeAtivo") == null) { FiltroCobrancaAtividade filtroCobrancaAtividade = new FiltroCobrancaAtividade(); filtroCobrancaAtividade .adicionarCaminhoParaCarregamentoEntidade("cobrancaAtividadePredecessora"); filtroCobrancaAtividade .adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCobrancaAtividade .adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.INDICADOR_CRONOGRAMA, CobrancaAtividade.ATIVO_CRONOGRAMA)); filtroCobrancaAtividade .adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.INDICADOR_OBRIGATORIEDADE, CobrancaAtividade.INDICADOR_OBRIGATORIEDADE_ATIVO)); filtroCobrancaAtividade .setCampoOrderBy(FiltroCobrancaAtividade.ORDEM_REALIZACAO); Collection atividadesCobrancaObrigatoriedadeAtivo = fachada .pesquisar(filtroCobrancaAtividade, CobrancaAtividade.class .getName()); sessao .setAttribute( "atividadesCobrancaObrigatoriedadeAtivo", atividadesCobrancaObrigatoriedadeAtivo); } // ******************************************************************************** // ************** Colocar as atividades que ainda // nao foram cadastradas no inerir // ************** Fl�vio Cordeiro 14/03/2007 // ******************************************************************************** if (!colecaoCobrancaAcaoAtividadeCronograma.isEmpty()) { FiltroCobrancaAtividade filtroCobrancaAtividade = new FiltroCobrancaAtividade(); filtroCobrancaAtividade.adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.INDICADOR_CRONOGRAMA, CobrancaAtividade.ATIVO_CRONOGRAMA)); Collection colecaoAtividadesBanco = fachada.pesquisar(filtroCobrancaAtividade, CobrancaAtividade.class.getName()); if (colecaoCobrancaAcaoAtividadeCronograma.size() != colecaoAtividadesBanco.size()) { Iterator iterator = colecaoAtividadesBanco.iterator(); while (iterator.hasNext()) { Iterator iteratorCobrancaAcaoAtividade = colecaoCobrancaAcaoAtividadeCronograma.iterator(); CobrancaAtividade cobrancaAtividade = (CobrancaAtividade) iterator.next(); boolean existe = false; while (iteratorCobrancaAcaoAtividade.hasNext()) { CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronogramaBase = (CobrancaAcaoAtividadeCronograma) iteratorCobrancaAcaoAtividade.next(); if (cobrancaAtividade.getId().equals( cobrancaAcaoAtividadeCronogramaBase.getCobrancaAtividade().getId())) { existe = true; break; } } if (!existe) { CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = new CobrancaAcaoAtividadeCronograma(); cobrancaAcaoAtividadeCronograma.setCobrancaAcaoCronograma(cobrancaAcaoCronograma); cobrancaAcaoAtividadeCronograma.setCobrancaAtividade(cobrancaAtividade); // colecaoCobrancaAcaoAtividadeCronograma // .add((cobrancaAtividade.getId() - 1), cobrancaAcaoAtividadeCronograma); colecaoCobrancaAcaoAtividadeCronograma .add(colecaoCobrancaAcaoAtividadeCronograma.size(), cobrancaAcaoAtividadeCronograma); } } //ordena a colecao para exibicao na tela. Collections.sort((List) colecaoCobrancaAcaoAtividadeCronograma, new Comparator() { public int compare(Object a, Object b) { Short codigo1 = ((CobrancaAcaoAtividadeCronograma) a).getCobrancaAtividade().getOrdemRealizacao(); Short codigo2 = ((CobrancaAcaoAtividadeCronograma) b).getCobrancaAtividade().getOrdemRealizacao(); if (codigo1 == null || codigo1.equals("")) { return -1; } else { return codigo1.compareTo(codigo2); } } }); } } // ******************************************************************************** if (!colecaoCobrancaAcaoAtividadeCronograma .isEmpty()) { CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronogramaComandar = (CobrancaAcaoAtividadeCronograma) colecaoCobrancaAcaoAtividadeCronograma .iterator().next(); if (cobrancaAcaoAtividadeCronogramaComandar .getComando() != null) { cobrancaCronogramaHelper.setComandar("S"); } else { cobrancaCronogramaHelper.setComandar("N"); } cobrancaCronogramaHelper .setCobrancasAtividadesParaInsercao(colecaoCobrancaAcaoAtividadeCronograma); } cobrancaCronogramaHelper .setCobrancaAcaoCronograma(cobrancaAcaoCronograma); cobrancaCronogramaHelper .setCobrancaGrupoCronogramaMes(cobrancaGrupoCronogramaMes); colecaoCobrancaCronogramaHelper .add(cobrancaCronogramaHelper); } } } } cobrancaActionForm .setMesAno(cobrancaGrupoCronogramaMes.getMesAno()); cobrancaActionForm .setDescricaoGrupoCobranca(cobrancaGrupoCronogramaMes .getCobrancaGrupo().getDescricao()); cobrancaActionForm.setIdGrupoCobranca(cobrancaGrupoCronogramaMes .getCobrancaGrupo().getId().toString()); sessao.setAttribute("colecaoCobrancaCronogramaHelper", colecaoCobrancaCronogramaHelper); // criacao da colecao para insercao no caso de erro de atualizacao if (!colecaoCobrancaGrupoCronogramaMes.isEmpty()) { Iterator iteratorCobrancagrupoCronogramaMes = colecaoCobrancaGrupoCronogramaMes .iterator(); FiltroCobrancaAcaoCronograma filtroCobrancaAcaoCronograma = null; Collection colecaoCobrancaAcaoCronograma = null; while (iteratorCobrancagrupoCronogramaMes.hasNext()) { cobrancaGrupoCronogramaMes = (CobrancaGrupoCronogramaMes) iteratorCobrancagrupoCronogramaMes .next(); sessao.setAttribute("cobrancaGrupoCronogramaMes", cobrancaGrupoCronogramaMes); filtroCobrancaAcaoCronograma = new FiltroCobrancaAcaoCronograma(); filtroCobrancaAcaoCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAcao.cobrancaAcaoPredecessora"); filtroCobrancaAcaoCronograma .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoCronograma.ID_COBRANCA_GRUPO_CRONOGRAMA_MES, idCobrancaGrupoCronogramaMensal)); filtroCobrancaAcaoCronograma .setCampoOrderBy(FiltroCobrancaAcaoCronograma.COBRANCA_ACAO_ORDEM_REALIZACAO); colecaoCobrancaAcaoCronograma = fachada.pesquisar( filtroCobrancaAcaoCronograma, CobrancaAcaoCronograma.class.getName()); if (!colecaoCobrancaAcaoCronograma.isEmpty()) { Iterator iteratorCobrancaAcaoCronograma = colecaoCobrancaAcaoCronograma .iterator(); FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = null; Collection colecaoCobrancaAcaoAtividadeCronogramaErro = null; while (iteratorCobrancaAcaoCronograma.hasNext()) { cobrancaCronogramaHelper = new CobrancaCronogramaHelper(); cobrancaAcaoCronograma = (CobrancaAcaoCronograma) iteratorCobrancaAcaoCronograma .next(); filtroCobrancaAcaoAtividadeCronograma = new FiltroCobrancaAcaoAtividadeCronograma(); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAtividade"); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoCronograma.cobrancaAcao.cobrancaAcaoPredecessora"); filtroCobrancaAcaoAtividadeCronograma .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ACAO_CRONOGRAMA, cobrancaAcaoCronograma.getId())); filtroCobrancaAcaoAtividadeCronograma .setCampoOrderBy(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ATIVIDADE_ORDEM_REALIZACAO); colecaoCobrancaAcaoAtividadeCronogramaErro = fachada .pesquisar( filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class .getName()); if (!colecaoCobrancaAcaoAtividadeCronogramaErro .isEmpty()) { CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronogramaComandar = (CobrancaAcaoAtividadeCronograma) colecaoCobrancaAcaoAtividadeCronogramaErro .iterator().next(); if (cobrancaAcaoAtividadeCronogramaComandar .getComando() != null) { cobrancaCronogramaHelper.setComandar("S"); } else { cobrancaCronogramaHelper.setComandar("N"); } cobrancaCronogramaHelper .setCobrancasAtividadesParaInsercao(colecaoCobrancaAcaoAtividadeCronogramaErro); } cobrancaCronogramaHelper .setCobrancaAcaoCronograma(cobrancaAcaoCronograma); cobrancaCronogramaHelper .setCobrancaGrupoCronogramaMes(cobrancaGrupoCronogramaMes); colecaoCobrancaCronogramaHelperErroAtualizacao .add(cobrancaCronogramaHelper); } } } } sessao.setAttribute( "colecaoCobrancaCronogramaHelperErroAtualizacao", colecaoCobrancaCronogramaHelperErroAtualizacao); } verificarExecucaoAutomaticaGrupo(cobrancaActionForm.getIdGrupoCobranca(),httpServletRequest); return retorno; } private void verificarExecucaoAutomaticaGrupo(String grupoCobranca, HttpServletRequest httpServletRequest){ String retorno = "2"; if(grupoCobranca != null){ FiltroCobrancaGrupo filtroCobrancaGrupo = new FiltroCobrancaGrupo(); filtroCobrancaGrupo.adicionarParametro(new ParametroSimples(FiltroCobrancaGrupo.ID, new Integer(grupoCobranca))); Collection gruposCobranca = getFachada().pesquisar(filtroCobrancaGrupo, CobrancaGrupo.class.getName()); CobrancaGrupo cobrancaGrupo = (CobrancaGrupo)Util.retonarObjetoDeColecao(gruposCobranca); if(cobrancaGrupo.getIndicadorExecucaoAutomatica().equals(ConstantesSistema.SIM)){ retorno = "1"; } } httpServletRequest.setAttribute("desabilitaAlteracao",retorno); } }