package gcom.gui.faturamento; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.Localidade; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoSituacaoComando; import gcom.faturamento.FaturamentoSituacaoTipo; import gcom.faturamento.FiltroFaturamentoSituacaoTipo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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 FiltrarSituacaoEspecialFaturamentoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping,ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirManterSituacaoEspecialFaturamento"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); FaturamentoSituacaoComando comandoFiltro = this.validarEGerarFiltro(actionForm); Integer totalRegistros = fachada.pesquisarSituacaoEspecialFaturamentoCount(comandoFiltro); retorno = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); Collection<FaturamentoSituacaoComando> colecaoFaturamentoSituacaoComando = fachada. pesquisarSituacaoEspecialFaturamento(comandoFiltro,(Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa")); if ( Util.isVazioOrNulo(colecaoFaturamentoSituacaoComando)) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null,"Situa��o Especial de Faturamento"); } sessao.setAttribute("colecaoFaturamentoSituacaoComando",colecaoFaturamentoSituacaoComando); sessao.setAttribute("idRegistroAtualizar", colecaoFaturamentoSituacaoComando.iterator().next().getId().toString()); return retorno; } /** * Valida todos os campos das inscri��es inicial e final. * Verifica se o destino � >= a origem. * *@since 12/08/2009 *@author Marlon Patrick */ private void validacaoInscricaoOrigemDestino(FiltrarSituacaoEspecialFaturamentoActionForm form) { validarLocalidadeOrigemDestino(form); validarPeriodoOrigemDestino(form); /* validarSetorComercialOrigemDestino(form); validarQuadraOrigemDestino(form); validarLoteOrigemDestino(form); validarSubloteOrigemDestino(form); */ } /** *Esse m�todo valida se a localidade destino � >= a localidade origem. * *@since 12/08/2009 *@author Marlon Patrick */ private void validarLocalidadeOrigemDestino( FiltrarSituacaoEspecialFaturamentoActionForm form) { if (Util.verificarNaoVazio(form.getLocalidadeOrigemID()) && Util.verificarNaoVazio(form.getLocalidadeDestinoID())) { int origem = Integer.parseInt(form.getLocalidadeOrigemID()); int destino = Integer.parseInt(form.getLocalidadeDestinoID()); if (origem > destino){ throw new ActionServletException ("atencao.localidade.final.maior.localidade.inicial",null, ""); } } } /** *Esse m�todo valida se o Periodo destino � >= ao Periodo origem. * *@since 23/03/2010 *@author Hugo Fernando */ private void validarPeriodoOrigemDestino( FiltrarSituacaoEspecialFaturamentoActionForm form) { if (Util.verificarNaoVazio(form.getMesAnoReferenciaFaturamentoInicial()) && Util.verificarNaoVazio(form.getMesAnoReferenciaFaturamentoFinal())) { Integer origem = Util.formatarMesAnoComBarraParaAnoMes(form.getMesAnoReferenciaFaturamentoInicial()); Integer destino = Util.formatarMesAnoComBarraParaAnoMes(form.getMesAnoReferenciaFaturamentoFinal()); if (origem.intValue() > destino.intValue()){ throw new ActionServletException ("atencao.mes.ano.inicial.maior.mes.ano.final",null, ""); } } } private FaturamentoSituacaoComando validarEGerarFiltro(ActionForm actionForm){ FiltrarSituacaoEspecialFaturamentoActionForm situacaoEspecialFaturamentoActionForm = (FiltrarSituacaoEspecialFaturamentoActionForm) actionForm; FaturamentoSituacaoComando comandoFiltro = new FaturamentoSituacaoComando(); Fachada fachada = Fachada.getInstancia(); String idImovel = null; String localidadeOrigemID = null; String periodoInicial = null; String localidadeDestinoID = null; String periodoFinal = null; String idFaturamentoSituacaoTipo = null; idImovel = situacaoEspecialFaturamentoActionForm.getIdImovel(); localidadeOrigemID = situacaoEspecialFaturamentoActionForm.getLocalidadeOrigemID(); periodoInicial = situacaoEspecialFaturamentoActionForm.getMesAnoReferenciaFaturamentoInicial(); localidadeDestinoID = situacaoEspecialFaturamentoActionForm.getLocalidadeDestinoID(); periodoFinal = situacaoEspecialFaturamentoActionForm.getMesAnoReferenciaFaturamentoFinal(); idFaturamentoSituacaoTipo = situacaoEspecialFaturamentoActionForm.getIdFaturamentoSituacaoTipo(); boolean peloMenosUmParametroInformado = false; if (Util.verificarNaoVazio(idImovel)) { if(fachada.verificarExistenciaImovel(new Integer(idImovel)) <= 0){ throw new ActionServletException("atencao.matricula.imovel.inexistente"); } peloMenosUmParametroInformado = true; comandoFiltro.setImovel(new Imovel(Integer.parseInt(idImovel))); } if (Util.verificarNaoVazio(localidadeOrigemID)) { Integer LocalidadeInicial = fachada.verificarExistenciaLocalidade(new Integer(localidadeOrigemID)); if( LocalidadeInicial == null || LocalidadeInicial <= 0){ throw new ActionServletException("atencao.localidade.inexistente"); } peloMenosUmParametroInformado = true; comandoFiltro.setLocalidadeInicial(new Localidade(Integer.parseInt(localidadeOrigemID))); } if (Util.verificarNaoVazio(periodoInicial)) { peloMenosUmParametroInformado = true; comandoFiltro.setAnoMesInicialSituacaoFaturamento(Util.formatarMesAnoComBarraParaAnoMes(periodoInicial)); } // campos localidade destino if (Util.verificarNaoVazio(localidadeDestinoID)) { if( !localidadeDestinoID.equals(localidadeOrigemID)){ Integer localidadeFinal = fachada.verificarExistenciaLocalidade(new Integer(localidadeDestinoID)); if( localidadeFinal == null || localidadeFinal <= 0){ throw new ActionServletException("atencao.localidade.inexistente"); } } peloMenosUmParametroInformado = true; comandoFiltro.setLocalidadeFinal(new Localidade(Integer.parseInt(localidadeDestinoID))); } if (Util.verificarNaoVazio(periodoFinal)) { peloMenosUmParametroInformado = true; comandoFiltro.setAnoMesFinalSituacaoFaturamento(Util.formatarMesAnoComBarraParaAnoMes(periodoFinal)); } if (Util.verificarNaoVazio(idFaturamentoSituacaoTipo) && !idFaturamentoSituacaoTipo.equals("-1")) { FiltroFaturamentoSituacaoTipo filtroFaturamentoSituacaoTipo = new FiltroFaturamentoSituacaoTipo(); filtroFaturamentoSituacaoTipo.adicionarParametro(new ParametroSimples(FiltroFaturamentoSituacaoTipo.ID, idFaturamentoSituacaoTipo)); Collection colecaoFatSituacaoTipo = this.getFachada().pesquisar( filtroFaturamentoSituacaoTipo, FaturamentoSituacaoTipo.class.getName()); FaturamentoSituacaoTipo faturamentoSituacaoTipo = (FaturamentoSituacaoTipo) Util.retonarObjetoDeColecao(colecaoFatSituacaoTipo); if(faturamentoSituacaoTipo != null){ peloMenosUmParametroInformado = true; comandoFiltro.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo); } } if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } this.validacaoInscricaoOrigemDestino(situacaoEspecialFaturamentoActionForm); return comandoFiltro; } }