package gcom.gui.faturamento.consumotarifa; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.Subcategoria; import gcom.fachada.Fachada; import gcom.faturamento.consumotarifa.ConsumoTarifaCategoria; import gcom.faturamento.consumotarifa.ConsumoTarifaFaixa; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.faturamento.consumotarifa.bean.CategoriaFaixaConsumoTarifaHelper; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; 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; /** * < <Descri��o da Classe>> * * @author Administrador */ public class ManterCategoriaConsumoTarifaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirManterCategoriaConsumoTarifa"); Fachada fachada = Fachada.getInstancia(); InserirCategoriaConsumoTarifaActionForm inserirCategoriaConsumoTarifaActionForm = (InserirCategoriaConsumoTarifaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoFaixa = (Collection) sessao .getAttribute("colecaoFaixa"); if (colecaoFaixa != null) { if (colecaoFaixa == null || colecaoFaixa.isEmpty()) { throw new ActionServletException( "atencao.faixa_categoria_consumo_tarifa"); } } else { throw new ActionServletException( "atencao.faixa_categoria_consumo_tarifa"); } Iterator iteratorColecaoFaixa = colecaoFaixa.iterator(); while (iteratorColecaoFaixa.hasNext()) { ConsumoTarifaFaixa consumoTarifaFaixa = (ConsumoTarifaFaixa) iteratorColecaoFaixa .next(); String parametroConsumoTarifaFaixa = "valorConsumoTarifa" + consumoTarifaFaixa.getUltimaAlteracao().getTime(); consumoTarifaFaixa.setValorConsumoTarifa(Util .formatarMoedaRealparaBigDecimal(httpServletRequest .getParameter(parametroConsumoTarifaFaixa))); } // ######## Colocando os dados dos Forms na SessaoCategoria String idCategoria = inserirCategoriaConsumoTarifaActionForm .getSlcCategoria(); FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro(new ParametroSimples( FiltroCategoria.CODIGO, idCategoria)); Collection colecaoCategoriaPesquisadas = fachada.pesquisar( filtroCategoria, Categoria.class.getName()); Categoria categoriaSelected = (Categoria) Util .retonarObjetoDeColecao(colecaoCategoriaPesquisadas); ConsumoTarifaCategoria consumoTarifaCategoria = new ConsumoTarifaCategoria(); // Categoria consumoTarifaCategoria.setCategoria(categoriaSelected); // seta a subcategoria zerada Subcategoria subcategoria = new Subcategoria(); subcategoria.setId(0); consumoTarifaCategoria.setSubCategoria(subcategoria); // Consumo m�nimo consumoTarifaCategoria.setNumeroConsumoMinimo(new Integer( inserirCategoriaConsumoTarifaActionForm.getConsumoMinimo())); // Tarifa m�nima consumoTarifaCategoria .setValorTarifaMinima(Util .formatarMoedaRealparaBigDecimal(inserirCategoriaConsumoTarifaActionForm .getValorTarifaMinima())); // Ultima altera��o consumoTarifaCategoria.setUltimaAlteracao(new Date()); Collection colecaoCategoria = new ArrayList(); int numeroFaixasCategoria = 0; if (colecaoFaixa != null) { numeroFaixasCategoria = colecaoFaixa.size(); } // Atribuindo a colecao faixa valores da categoria colecaoFaixa = (Collection) sessao.getAttribute("colecaoFaixa"); Iterator colecaoFaixaIterator = colecaoFaixa.iterator(); if ((colecaoFaixa != null) && (!colecaoFaixa.isEmpty())) { Iterator colecaoFaixaIt = colecaoFaixa.iterator(); boolean i = false; while (colecaoFaixaIt.hasNext()) { ConsumoTarifaFaixa consumoTarifaFaixa = (ConsumoTarifaFaixa) colecaoFaixaIt .next(); if(new Integer(inserirCategoriaConsumoTarifaActionForm.getConsumoMinimo()).intValue() > consumoTarifaFaixa.getNumeroConsumoFaixaFim().intValue() ){ throw new ActionServletException( "atencao.consumo_minimo.maior.faixa_limite_superior_menor_existe"); } if (consumoTarifaFaixa.getNumeroConsumoFaixaFim().toString() .equals("999999")) { i = true; } } if (!i) { throw new ActionServletException( "atencao.faixa_limite_superior"); } } while (colecaoFaixaIterator.hasNext()) { ConsumoTarifaFaixa consumoTarifaFaixa = (ConsumoTarifaFaixa) colecaoFaixaIterator .next(); consumoTarifaFaixa .setConsumoTarifaCategoria(consumoTarifaCategoria); } if (sessao.getAttribute("colecaoCategoria") != null) { colecaoCategoria = (Collection) sessao .getAttribute("colecaoCategoria"); CategoriaFaixaConsumoTarifaHelper consumoTarifaHelper = new CategoriaFaixaConsumoTarifaHelper( numeroFaixasCategoria, consumoTarifaCategoria, (Collection) sessao.getAttribute("colecaoFaixa")); String trava = (String) sessao.getAttribute("trava"); if (colecaoCategoria.contains(consumoTarifaHelper)) { String novaCategoria = (String) sessao .getAttribute("novaCategoria"); if (novaCategoria != null && novaCategoria.equals("sim")) { throw new ActionServletException( "atencao.consumotaria.categoria_existente"); } if (novaCategoria != null && novaCategoria.equals("sim") && !"sim".equals(trava)) { throw new ActionServletException( "atencao.consumotaria.categoria_existente"); } else { Iterator iteratorColecaoCategoria = colecaoCategoria .iterator(); while (iteratorColecaoCategoria.hasNext()) { CategoriaFaixaConsumoTarifaHelper helper = (CategoriaFaixaConsumoTarifaHelper) iteratorColecaoCategoria .next(); if (helper.getConsumoTarifaCategoria().getCategoria() .getId().equals( consumoTarifaHelper .getConsumoTarifaCategoria() .getCategoria().getId())) { iteratorColecaoCategoria.remove(); } } colecaoCategoria.add(consumoTarifaHelper); } } else { colecaoCategoria.add(consumoTarifaHelper); } } else { colecaoCategoria.add(new CategoriaFaixaConsumoTarifaHelper( numeroFaixasCategoria, consumoTarifaCategoria, (Collection) sessao.getAttribute("colecaoFaixa"))); sessao.setAttribute("colecaoCategoria", colecaoCategoria); } // fim. sessao.removeAttribute("categoriaNova"); sessao.removeAttribute("trava"); if (httpServletRequest.getParameter("testeInserir").equalsIgnoreCase( "true")) { httpServletRequest.setAttribute("testeInserir", "true"); } return retorno; } }