package gcom.gui.cadastro.tarifasocial; import gcom.cadastro.cliente.ClienteImovelEconomia; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.FiltroAreaConstruidaFaixa; import gcom.cadastro.imovel.ImovelEconomia; import gcom.cadastro.tarifasocial.FiltroRendaTipo; import gcom.cadastro.tarifasocial.FiltroTarifaSocialCartaoTipo; import gcom.cadastro.tarifasocial.FiltroTarifaSocialExclusaoMotivo; import gcom.cadastro.tarifasocial.RendaTipo; import gcom.cadastro.tarifasocial.TarifaSocialCartaoTipo; import gcom.cadastro.tarifasocial.TarifaSocialDadoEconomia; import gcom.cadastro.tarifasocial.TarifaSocialExclusaoMotivo; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; 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 rodrigo */ public class ExibirInserirTarifaSocialDadosCartaoMultiplasEconomiasAction extends GcomAction { /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("inserirTarifaSocialDadosCartao"); //Instancia da Fachada Fachada fachada = Fachada.getInstancia(); //Pega uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); TarifaSocialCartaoActionForm tarifaSocialCartaoActionForm = (TarifaSocialCartaoActionForm) actionForm; FiltroTarifaSocialCartaoTipo filtro = new FiltroTarifaSocialCartaoTipo(); filtro.setCampoOrderBy(FiltroTarifaSocialCartaoTipo.DESCRICAO); FiltroRendaTipo filtroRendaTipo = new FiltroRendaTipo(); filtroRendaTipo.setCampoOrderBy(FiltroRendaTipo.DESCRICAO); Collection colecaoTarifaSocialCartaoTipo = fachada.pesquisar(filtro, TarifaSocialCartaoTipo.class.getName()); Collection colecaoRendaTipo = fachada.pesquisar(filtroRendaTipo, RendaTipo.class.getName()); //A cole��o de tipos do cart�o � obrigat�ria na p�gina //[FS0004] if (colecaoTarifaSocialCartaoTipo == null || colecaoTarifaSocialCartaoTipo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "tipo do cart�o"); } //A cole��o de tipos de renda � obrigat�ria na p�gina //[FS0004] if (colecaoRendaTipo == null || colecaoRendaTipo.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "tipo de renda"); } httpServletRequest.setAttribute("colecaoTarifaSocialCartaoTipo", colecaoTarifaSocialCartaoTipo); httpServletRequest.setAttribute("colecaoRendaTipo", colecaoRendaTipo); FiltroAreaConstruidaFaixa filtroAreaConstruidaFaixa = new FiltroAreaConstruidaFaixa(); filtroAreaConstruidaFaixa.adicionarParametro(new ParametroSimples( FiltroAreaConstruidaFaixa.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoAreaConstruidaFaixa = fachada.pesquisar( filtroAreaConstruidaFaixa, AreaConstruidaFaixa.class.getName()); sessao.setAttribute("colecaoAreaConstruidaFaixa", colecaoAreaConstruidaFaixa); String clienteImovelEconomiaID = httpServletRequest .getParameter("clienteImovelEconomia"); Integer idCliente = fachada.pesquisarClienteImovelEconomia(new Integer(clienteImovelEconomiaID)); Collection colecaotarifaSocialDadoEconomia = fachada .pesquisarClientesUsuarioExistenteTarifaSocial(idCliente); if (colecaotarifaSocialDadoEconomia != null && !colecaotarifaSocialDadoEconomia.isEmpty()) { TarifaSocialDadoEconomia tarifaSocialDadoEconomia = (TarifaSocialDadoEconomia) colecaotarifaSocialDadoEconomia .iterator().next(); sessao.setAttribute("idTarifaSocialDadoEconomia", tarifaSocialDadoEconomia.getId().toString()); if (tarifaSocialDadoEconomia.getImovel() != null) { tarifaSocialCartaoActionForm .setIdImovel(tarifaSocialDadoEconomia.getImovel() .getId().toString()); } if (tarifaSocialDadoEconomia.getTarifaSocialRevisaoMotivo() != null) { tarifaSocialCartaoActionForm .setMotivoRevisao(tarifaSocialDadoEconomia .getTarifaSocialRevisaoMotivo().getDescricao()); } FiltroTarifaSocialExclusaoMotivo filtroTarifaSocialExclusaoMotivo = new FiltroTarifaSocialExclusaoMotivo(); filtroTarifaSocialExclusaoMotivo .adicionarParametro(new ParametroSimples( FiltroTarifaSocialExclusaoMotivo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroTarifaSocialExclusaoMotivo .setCampoOrderBy(FiltroTarifaSocialExclusaoMotivo.DESCRICAO); Collection colecaoTarifaSocialExclusaoMotivo = fachada.pesquisar( filtroTarifaSocialExclusaoMotivo, TarifaSocialExclusaoMotivo.class.getName()); httpServletRequest.setAttribute( "colecaoTarifaSocialExclusaoMotivo", colecaoTarifaSocialExclusaoMotivo); } ImovelEconomia imovelEconomia = null; boolean encontrouImovelEconomia = false; if (sessao.getAttribute("colecaoClienteImovelEconomia") != null) { Collection colecaoClienteImovelEconomiaMemoria = (Collection) sessao .getAttribute("colecaoClienteImovelEconomia"); TarifaSocialDadoEconomia tarifaSocialDadoEconomia = buscarTarifaSocialDadoEconomiaSelecionada( colecaoClienteImovelEconomiaMemoria, clienteImovelEconomiaID); if (tarifaSocialDadoEconomia != null) { httpServletRequest.setAttribute("tarifaSocialDadoEconomia", tarifaSocialDadoEconomia); if (sessao.getAttribute("colecaoImovelEconomiaAtualizados") != null) { Collection colecaoImovelEconomiaAtualizados = (Collection) sessao.getAttribute("colecaoImovelEconomiaAtualizados"); Iterator colecaoImovelEconomiaAtualizadosIterator = colecaoImovelEconomiaAtualizados.iterator(); while(colecaoImovelEconomiaAtualizadosIterator.hasNext()) { imovelEconomia = (ImovelEconomia) colecaoImovelEconomiaAtualizadosIterator.next(); if (imovelEconomia.getId().equals(tarifaSocialDadoEconomia.getImovelEconomia().getId())) { encontrouImovelEconomia = true; break; } } } } } if (!encontrouImovelEconomia) { imovelEconomia = fachada.pesquisarImovelEconomiaPeloCliente(new Integer(clienteImovelEconomiaID)); } if (imovelEconomia != null) { // N�mero de Contrato da Companhia El�trica if (imovelEconomia.getNumeroCelpe() != null) { tarifaSocialCartaoActionForm .setNumeroContratoCelpe(imovelEconomia .getNumeroCelpe().toString()); } else { tarifaSocialCartaoActionForm.setNumeroContratoCelpe(""); } // N�mero do IPTU if (imovelEconomia.getNumeroIptu() != null) { tarifaSocialCartaoActionForm .setNumeroIPTU(imovelEconomia.getNumeroIptu().toString()); } else { tarifaSocialCartaoActionForm.setNumeroIPTU(""); } // �rea Constru�da if (imovelEconomia.getAreaConstruida() != null) { String areaConstruidaFormatada = Util .formatarMoedaReal(imovelEconomia .getAreaConstruida()); tarifaSocialCartaoActionForm .setAreaConstruida(areaConstruidaFormatada); } else { tarifaSocialCartaoActionForm.setAreaConstruida(""); } // �rea Constru�da Faixa if (imovelEconomia.getAreaConstruidaFaixa() != null) { tarifaSocialCartaoActionForm .setAreaConstruidaFaixa(imovelEconomia .getAreaConstruidaFaixa().getId().toString()); } else { tarifaSocialCartaoActionForm.setAreaConstruidaFaixa("" + ConstantesSistema.NUMERO_NAO_INFORMADO); } // N�mero de Moradores if (imovelEconomia.getNumeroMorador() != null) { tarifaSocialCartaoActionForm.setNumeroMoradores(imovelEconomia.getNumeroMorador().toString()); } else { tarifaSocialCartaoActionForm.setNumeroMoradores(""); } sessao.setAttribute("imovelEconomiaAtualizado", imovelEconomia); } // Seleciona em qual clienteImovelEconomia ser� inserida a tarifa social httpServletRequest.setAttribute("clienteImovelEconomiaID", clienteImovelEconomiaID); //Carregar a data corrente do sistema //==================================== SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Calendar dataCorrente = new GregorianCalendar(); //Data Corrente httpServletRequest.setAttribute("dataAtual", formatoData .format(dataCorrente.getTime())); return retorno; } /** * Retorno o objeto completo selecionado por um usu�rio * * @param colecao * @param idObjeto * @return */ private TarifaSocialDadoEconomia buscarTarifaSocialDadoEconomiaSelecionada( Collection colecao, String idObjeto) { TarifaSocialDadoEconomia retorno = null; ClienteImovelEconomia clienteImovelEconomia = null; Collection colecaoTarifaSocialDadoEconomia = null; if (colecao != null && !colecao.isEmpty() && idObjeto != null && !idObjeto.equals("")) { Iterator colecaoIterator = colecao.iterator(); while (colecaoIterator.hasNext()) { clienteImovelEconomia = (ClienteImovelEconomia) colecaoIterator .next(); if (clienteImovelEconomia.getId().intValue() == new Integer( idObjeto).intValue()) { colecaoTarifaSocialDadoEconomia = clienteImovelEconomia .getImovelEconomia().getTarifaSocialDadoEconomias(); if (colecaoTarifaSocialDadoEconomia != null && !colecaoTarifaSocialDadoEconomia.isEmpty()) { retorno = (TarifaSocialDadoEconomia) Util .retonarObjetoDeColecao(colecaoTarifaSocialDadoEconomia); } break; } } } return retorno; } }