package gcom.gui.batch; import gcom.cobranca.CicloMeta; import gcom.cobranca.CicloMetaGrupo; import gcom.cobranca.CobrancaAcao; import gcom.cobranca.CobrancaAcaoAtividadeCronograma; import gcom.cobranca.FiltroCicloMeta; import gcom.cobranca.FiltroCicloMetaGrupo; import gcom.cobranca.FiltroCobrancaAcaoAtividadeCronograma; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import gcom.util.Util; /** * Action respons�vel pela pre-exibi��o da pagina de inserir processo cobran�a * * @author Rodrigo Silveira, Anderson Italo * @created 11/08/2006, 28/09/2009 */ public class InserirProcessoCobrancaComandadoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("telaSucesso"); Fachada fachada = Fachada.getInstancia(); String[] idsProcessosCobrancaCronogramaPagina = httpServletRequest .getParameterValues("idsCronograma"); String[] idsProcessosCobrancaEventualPagina = httpServletRequest .getParameterValues("idsEventuais"); Collection<Integer> idsProcessosCobrancaEventual = new ArrayList(); Collection<Integer> idsProcessosCobrancaCronograma = new ArrayList(); if (idsProcessosCobrancaCronogramaPagina != null) { // FS0010 - Verificar exist�ncia de meta para a��o FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = new FiltroCobrancaAcaoAtividadeCronograma(); for(int i=0; i< idsProcessosCobrancaCronogramaPagina.length; i++ ){ if(!idsProcessosCobrancaCronogramaPagina[i].equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))){ if(idsProcessosCobrancaCronogramaPagina.length == 1){ filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.ID, idsProcessosCobrancaCronogramaPagina[i])); } else if( i == 0 ){ filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.ID, idsProcessosCobrancaCronogramaPagina[i], ParametroSimples.CONECTOR_OR, idsProcessosCobrancaCronogramaPagina.length)); } else if( i == (idsProcessosCobrancaCronogramaPagina.length - 1) ){ filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.ID, idsProcessosCobrancaCronogramaPagina[i])); } else{ filtroCobrancaAcaoAtividadeCronograma.adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeCronograma.ID, idsProcessosCobrancaCronogramaPagina[i], ParametroSimples.CONECTOR_OR)); } } } filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ACAO); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ACAO_CRONOGRAMA); filtroCobrancaAcaoAtividadeCronograma .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_GRUPO_CRONOGRAMA_MES); Collection colecaoCobrancaAcaoAtividadeCronograma = fachada.pesquisar(filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class.getName()); /* Caso alguma das a��es selecionadas para execu��o utilize metas e as metas n�o tenham sido geradas * (Verificar a para cada uma das a��es selecionadas se o indicador CBAC_ICUSAMETAS = 1 * na tabela COBRANCA_ACAO. Caso seja verificar se existem metas geradas * na tabela CICLO_META_GRUPO com CLMT_ID = CLMT_ID da tabela CICLO_META * com CBAC_ID = CBAC_ID e CLMT_AMREFRENCIA = Ciclo da a��o em quest�o)*/ for (Iterator iter = colecaoCobrancaAcaoAtividadeCronograma .iterator(); iter.hasNext();) { CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) iter.next(); //se a a��o de cobran�a usa metas if (cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma() .getCobrancaAcao().getIndicadorMetasCronograma() == CobrancaAcao.INDICADOR_USA_METAS_CRONOGRAMA_SIM){ CobrancaAcao cobrancaAcao = cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma().getCobrancaAcao(); int anoMesReferencia = cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma().getCobrancaGrupoCronogramaMes().getAnoMesReferencia(); FiltroCicloMeta filtroCicloMeta = new FiltroCicloMeta(); filtroCicloMeta.adicionarParametro(new ParametroSimples(FiltroCicloMeta.COBRANCA_ACAO_ID, cobrancaAcao.getId())); filtroCicloMeta.adicionarParametro(new ParametroSimples(FiltroCicloMeta.ANO_MES_REFERENCIA, anoMesReferencia)); Collection colecaoCicloMeta = fachada.pesquisar(filtroCicloMeta, CicloMeta.class.getName()); CicloMeta cicloMeta = (CicloMeta)Util.retonarObjetoDeColecao(colecaoCicloMeta); //se n�o possui meta if (cicloMeta == null){ throw new ActionServletException( "atencao.metas_acao_cobranca_nao_geradas", null, new String[] { cobrancaAcao.getDescricaoCobrancaAcao(),Util.formatarAnoMesParaMesAno(anoMesReferencia)}); } FiltroCicloMetaGrupo filtroCicloMetaGrupo = new FiltroCicloMetaGrupo(); filtroCicloMetaGrupo.adicionarParametro(new ParametroSimples(FiltroCicloMetaGrupo.CICLO_META_ID, cicloMeta.getId())); Collection colecaoCicloMetaGrupo = fachada.pesquisar( filtroCicloMetaGrupo, CicloMetaGrupo.class.getName()); //se as metas n�o foram geradas if (colecaoCicloMetaGrupo == null || colecaoCicloMetaGrupo.isEmpty()){ throw new ActionServletException( "atencao.metas_acao_cobranca_nao_geradas", null, new String[] { cobrancaAcao.getDescricaoCobrancaAcao() + Util.formatarAnoMesParaMesAno(anoMesReferencia)}); } } } for (int i = 0; i < idsProcessosCobrancaCronogramaPagina.length; i++) { idsProcessosCobrancaCronograma.add(Integer .parseInt(idsProcessosCobrancaCronogramaPagina[i])); } } if (idsProcessosCobrancaEventualPagina != null) { for (int i = 0; i < idsProcessosCobrancaEventualPagina.length; i++) { idsProcessosCobrancaEventual.add(Integer .parseInt(idsProcessosCobrancaEventualPagina[i])); } } fachada.inserirProcessoIniciadoCobrancaComandado( idsProcessosCobrancaCronograma, idsProcessosCobrancaEventual, (Usuario) (httpServletRequest.getSession(false)) .getAttribute("usuarioLogado")); montarPaginaSucesso(httpServletRequest, "Processo(s) Iniciado(s) inserido(s) com sucesso.", "Inserir outro Processo", "exibirInserirProcessoAction.do"); return retorno; } }