package gcom.gui.cobranca; import gcom.cobranca.CobrancaAcaoAtividadeComando; import gcom.cobranca.FiltroCobrancaAcaoAtividadeComando; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ComparacaoTextoCompleto; import gcom.util.filtro.Intervalo; import gcom.util.filtro.ParametroSimples; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; import java.util.Map; 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; /** * [UC0253] Pesquisar Comando de A��o de Cobran�a * * @author Rafael Santos * @since 24/01/2006 */ public class PesquisarComandoAcaoCobrancaAction extends GcomAction { /** * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("retornarPesquisarComandoAcaoCobranca"); HttpSession sessao = httpServletRequest.getSession(false); // Fachada fachada = Fachada.getInstancia(); PesquisarComandoAcaoCobrancaActionForm pesquisarComandoAcaoCobrancaActionForm = (PesquisarComandoAcaoCobrancaActionForm) actionForm; String periodoGeracaoComandoInicial = pesquisarComandoAcaoCobrancaActionForm .getPeriodoGeracaoComandoInicial(); String periodoGeracaoComandoFinal = pesquisarComandoAcaoCobrancaActionForm .getPeriodoGeracaoComandoFinal(); String periodoExecucaoComandoInicial = pesquisarComandoAcaoCobrancaActionForm .getPeriodoExecucaoComandoInicial(); String periodoExecucaoComandoFinal = pesquisarComandoAcaoCobrancaActionForm .getPeriodoExecucaoComandoFinal(); // [FS0003] - Verificar data final menor que data inicial if ((periodoGeracaoComandoInicial != null && !periodoGeracaoComandoInicial .equals("")) && (periodoGeracaoComandoFinal != null && !periodoGeracaoComandoFinal .equals(""))) { // inicial boolean valida = Util .validarDiaMesAno(periodoGeracaoComandoInicial); if (valida) { throw new ActionServletException( "atencao.data_incial_comando.invalida"); } // final String anoFinal = periodoGeracaoComandoFinal.substring(6, 10); String mesFinal = periodoGeracaoComandoFinal.substring(3, 5); String diaFinal = periodoGeracaoComandoFinal.substring(0, 2); boolean validaFinal = Util .validarDiaMesAno(periodoGeracaoComandoFinal); if (validaFinal) { throw new ActionServletException( "atencao.data_final_comando.invalida"); } Calendar periodoFinal = new GregorianCalendar(); periodoFinal.set(Calendar.DATE, new Integer(diaFinal).intValue()); periodoFinal.set(Calendar.MONTH, (new Integer(mesFinal).intValue() - 1)); periodoFinal.set(Calendar.YEAR, new Integer(anoFinal).intValue()); if (periodoFinal.compareTo(new GregorianCalendar()) > 0) { throw new ActionServletException( // Data Final do Per�odo de Gera��o do Comando posterior � data // corrente "atencao.data_final_comando.maior.data_corrente"); } Calendar calendarPeriodoGeracaoComandoInicial = new GregorianCalendar(); calendarPeriodoGeracaoComandoInicial.setTime(Util .converteStringParaDate(periodoGeracaoComandoInicial)); Calendar calendarPeriodoGeracaoComandoFinal = new GregorianCalendar(); calendarPeriodoGeracaoComandoFinal.setTime(Util .converteStringParaDate(periodoGeracaoComandoFinal)); if (calendarPeriodoGeracaoComandoInicial .compareTo(calendarPeriodoGeracaoComandoFinal) > 0) { httpServletRequest.setAttribute("nomeCampo", "periodoGeracaoComandoFinal"); throw new ActionServletException( // Data Final do Per�odo de Gera��o do Comando anterior � Data // Inicial "atencao.geracao.data_inicial_comando.maior_data_final_comando"); } } // [FS0003] - Verificar data final menor que data inicial if ((periodoExecucaoComandoInicial != null && !periodoExecucaoComandoInicial .equals("")) && (periodoExecucaoComandoFinal != null && !periodoExecucaoComandoFinal .equals(""))) { // inicial boolean valida = Util .validarDiaMesAno(periodoExecucaoComandoInicial); if (valida) { throw new ActionServletException( "atencao.data_inicial_execucao.invalida"); } // inicial boolean validaFinal = Util .validarDiaMesAno(periodoExecucaoComandoFinal); if (validaFinal) { throw new ActionServletException( "atencao.data_final_execucao.invalida"); } // final String anoFinal = periodoExecucaoComandoFinal.substring(6, 10); String mesFinal = periodoExecucaoComandoFinal.substring(3, 5); String diaFinal = periodoExecucaoComandoFinal.substring(0, 2); Calendar periodoFinal = new GregorianCalendar(); periodoFinal.set(Calendar.DATE, new Integer(diaFinal).intValue()); periodoFinal.set(Calendar.MONTH, (new Integer(mesFinal).intValue() - 1)); periodoFinal.set(Calendar.YEAR, new Integer(anoFinal).intValue()); if (periodoFinal.compareTo(new GregorianCalendar()) > 0) { throw new ActionServletException( // Data Final do Per�odo de Execu��o do Comando posterior � data // corrente "atencao.data_final_execucao.maior.data_corrente"); } Calendar calendarPeriodoExecucaoComandoInicial = new GregorianCalendar(); calendarPeriodoExecucaoComandoInicial.setTime(Util .converteStringParaDate(periodoExecucaoComandoInicial)); Calendar calendarPeriodoExecucaoComandoFinal = new GregorianCalendar(); calendarPeriodoExecucaoComandoFinal.setTime(Util .converteStringParaDate(periodoExecucaoComandoFinal)); if (calendarPeriodoExecucaoComandoInicial .compareTo(calendarPeriodoExecucaoComandoFinal) > 0) { httpServletRequest.setAttribute("nomeCampo", "periodoExecucaoComandoFinal"); throw new ActionServletException(// Data Final do Per�odo de // Execu��o do Comando // anterior � Data Inicial "atencao.execucao.data_inicial_comando.maior_data_final_comando"); } } // A consulta de Filtro j� limite a quantidade m�xima de 50 registros // [FS0005] - Muitos Registros Encontrados // if (fachada.registroMaximo(CobrancaAcaoAtividadeComando.class) > // ConstantesSistema.NUMERO_MAXIMO_REGISTROS_MANUTENCAO) { // throw new ActionServletException( // "atencao.pesquisa.muitosregistros"); // } // Consultar Cobranca Acao Atividade Comando FiltroCobrancaAcaoAtividadeComando filtroCobrancaAcaoAtividadeComando = new FiltroCobrancaAcaoAtividadeComando(); // id da cobran�a a��o if (pesquisarComandoAcaoCobrancaActionForm.getCobrancaAcao() != null && !pesquisarComandoAcaoCobrancaActionForm.getCobrancaAcao() .equals("") && !pesquisarComandoAcaoCobrancaActionForm.getCobrancaAcao() .equals(ConstantesSistema.NUMERO_NAO_INFORMADO + "")) { filtroCobrancaAcaoAtividadeComando .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeComando.ID_COBRANCA_ACAO, pesquisarComandoAcaoCobrancaActionForm .getCobrancaAcao())); } // id da cobran�a atividade if (pesquisarComandoAcaoCobrancaActionForm.getCobrancaAtividade() != null && !pesquisarComandoAcaoCobrancaActionForm .getCobrancaAtividade().equals("") && !pesquisarComandoAcaoCobrancaActionForm .getCobrancaAtividade().equals( ConstantesSistema.NUMERO_NAO_INFORMADO + "")) { filtroCobrancaAcaoAtividadeComando .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeComando.ID_COBRANCA_ATIVIDADE, pesquisarComandoAcaoCobrancaActionForm .getCobrancaAtividade())); } // per�odo de gera��o do comando if ((periodoGeracaoComandoInicial != null && !periodoGeracaoComandoInicial .equals("")) && (periodoGeracaoComandoFinal != null && !periodoGeracaoComandoFinal .equals(""))) { Intervalo intervalo = new Intervalo( FiltroCobrancaAcaoAtividadeComando.COMANDO, Util .converteStringParaDateHora(periodoGeracaoComandoInicial + " 00:00:00"), Util.converteStringParaDateHora(periodoGeracaoComandoFinal + " 23:59:59")); filtroCobrancaAcaoAtividadeComando.adicionarParametro(intervalo); } // per�odo de execu��o do comando if ((periodoExecucaoComandoInicial != null && !periodoExecucaoComandoInicial .equals("")) && (periodoExecucaoComandoFinal != null && !periodoExecucaoComandoFinal .equals(""))) { Intervalo intervalo = new Intervalo( FiltroCobrancaAcaoAtividadeComando.REALIZACAO, Util .converteStringParaDateHora(periodoExecucaoComandoInicial + " 00:00:00"), Util.converteStringParaDateHora(periodoExecucaoComandoFinal + " 23:59:59")); filtroCobrancaAcaoAtividadeComando.adicionarParametro(intervalo); } // id do usuario if (pesquisarComandoAcaoCobrancaActionForm.getIdUsuario() != null && !pesquisarComandoAcaoCobrancaActionForm.getIdUsuario() .equals("")) { filtroCobrancaAcaoAtividadeComando .adicionarParametro(new ParametroSimples( FiltroCobrancaAcaoAtividadeComando.ID_USUARIO, pesquisarComandoAcaoCobrancaActionForm .getIdUsuario())); } String tituloComando = pesquisarComandoAcaoCobrancaActionForm .getTituloComando(); String tipoPesquisa = (String) pesquisarComandoAcaoCobrancaActionForm .getTipoPesquisa(); if (tituloComando != null && !tituloComando.trim().equalsIgnoreCase("")) { if (tipoPesquisa != null && tipoPesquisa .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroCobrancaAcaoAtividadeComando .adicionarParametro(new ComparacaoTextoCompleto( FiltroCobrancaAcaoAtividadeComando.DESCRICAO_TITULO, tituloComando)); } else { filtroCobrancaAcaoAtividadeComando .adicionarParametro(new ComparacaoTexto( FiltroCobrancaAcaoAtividadeComando.DESCRICAO_TITULO, tituloComando)); } } filtroCobrancaAcaoAtividadeComando .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeComando.COBRANCA_ACAO); filtroCobrancaAcaoAtividadeComando .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeComando.COBRANCA_ATIVIDADE); filtroCobrancaAcaoAtividadeComando .adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeComando.USUARIO); Map resultado = controlarPaginacao(httpServletRequest, retorno, filtroCobrancaAcaoAtividadeComando, CobrancaAcaoAtividadeComando.class.getName()); Collection colecaoCobrancaAcaoAtividadeComando = (Collection) resultado .get("colecaoRetorno"); retorno = (ActionForward) resultado.get("destinoActionForward"); sessao.setAttribute("colecaoCobrancaAcaoAtividadeComando", colecaoCobrancaAcaoAtividadeComando); // [FS0006] - Nenhum registro encontrado if (colecaoCobrancaAcaoAtividadeComando == null || colecaoCobrancaAcaoAtividadeComando.isEmpty()) { throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } if (sessao.getAttribute("colecaoCobrancaAcao") != null) { sessao.removeAttribute("colecaoCobrancaAcao"); } if (sessao.getAttribute("colecaoCobrancaAtividade") != null) { sessao.removeAttribute("colecaoCobrancaAtividade"); } return retorno; } }