package gcom.gui.cadastro.tarifasocial; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.imovel.AreaConstruidaFaixa; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.tarifasocial.FiltroRendaTipo; import gcom.cadastro.tarifasocial.FiltroTarifaSocialCartaoTipo; 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.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.Vector; 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 InserirTarifaSocialDadosCartaoUmaEconomiaAction 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("inserirTarifaSocialDadosCartaoUmaEconomia"); //Instancia da Fachada Fachada fachada = Fachada.getInstancia(); //Pega uma instancia da sessao HttpSession sessao = httpServletRequest.getSession(false); TarifaSocialCartaoActionForm form = (TarifaSocialCartaoActionForm) actionForm; //Descobrir se � um recadastramento ClienteImovel clienteImovel = (ClienteImovel) sessao .getAttribute("clienteImovel"); //[FS0005] - Verificar preencimento dos campos String numeroIptu = form.getNumeroIPTU(); String numeroContratoCompanhiaEletrica = form.getNumeroContratoCelpe(); String areaConstruida = form.getAreaConstruida(); String idAreaConstruidaFaixa = form.getAreaConstruidaFaixa(); String numeroMoradores = form.getNumeroMoradores(); Long numeroCelpeFormatado = null; if (numeroContratoCompanhiaEletrica != null && !numeroContratoCompanhiaEletrica.trim().equals("")) { numeroCelpeFormatado = new Long(numeroContratoCompanhiaEletrica); } BigDecimal areaConstruidaFormatada = null; if (areaConstruida != null && !areaConstruida.trim().equals("")) { areaConstruidaFormatada = Util.formatarMoedaRealparaBigDecimal(areaConstruida); } String numeroIptuFormatado = null; if (numeroIptu != null && !numeroIptu.trim().equals("")) { numeroIptuFormatado = Util.formatarIPTU(numeroIptu); } Integer idImovel = clienteImovel.getImovel().getId(); String[] dado = fachada.verificarPreenchimentoInserirDadosTarifaSocial(numeroCelpeFormatado, areaConstruidaFormatada, numeroIptuFormatado, idImovel, form.getNumero(), form.getDataValidade(), form .getNumeroParcelas(), new Integer(form .getNumeroCelpe().trim().equals("") ? "0" : form .getNumeroCelpe()), form.getValorRendaFamiliar().trim().equals("") ? Util.formatarMoedaRealparaBigDecimal("0") : Util.formatarMoedaRealparaBigDecimal(form.getValorRendaFamiliar()), form.getTipoCartao(), form .getTipoRenda()); if(dado != null){ if(dado[0].equals("9")){ httpServletRequest.setAttribute("codigo","9"); }else if(dado[0].equals("10")){ httpServletRequest.setAttribute("codigo","10"); httpServletRequest.setAttribute("valor",dado[1]); httpServletRequest.setAttribute("operacaoConcluida", "true"); return retorno; }else if(dado[0].equals("11")){ httpServletRequest.setAttribute("codigo","11"); httpServletRequest.setAttribute("valor",dado[1]); httpServletRequest.setAttribute("operacaoConcluida", "true"); return retorno; } else if (dado[0].equals("12")) { httpServletRequest.setAttribute("codigo","12"); httpServletRequest.setAttribute("valor",dado[1]); httpServletRequest.setAttribute("operacaoConcluida", "true"); return retorno; } } //Esse parametro indica se o registro que est� sendo avaliado j� est� na base //O c�digo � a chava prim�ria String chave = httpServletRequest.getParameter("codigo"); Collection colecaoPesquisa; TarifaSocialDadoEconomia tarifaSocialDadoEconomia = new TarifaSocialDadoEconomia(); tarifaSocialDadoEconomia.setUltimaAlteracao(new Date()); tarifaSocialDadoEconomia.setImovel(clienteImovel.getImovel()); if (form.getNumero() != null && !form.getNumero().equals("")) { tarifaSocialDadoEconomia.setNumeroCartaoProgramaSocial(new Long( form.getNumero())); TarifaSocialCartaoTipo tarifaSocialCartaoTipo; FiltroTarifaSocialCartaoTipo filtroTarifaSocialCartaoTipo = new FiltroTarifaSocialCartaoTipo(); filtroTarifaSocialCartaoTipo .adicionarParametro(new ParametroSimples( FiltroTarifaSocialCartaoTipo.ID, form .getTipoCartao())); colecaoPesquisa = fachada.pesquisar(filtroTarifaSocialCartaoTipo, TarifaSocialCartaoTipo.class.getName()); tarifaSocialCartaoTipo = (TarifaSocialCartaoTipo) Util .retonarObjetoDeColecao(colecaoPesquisa); tarifaSocialDadoEconomia .setTarifaSocialCartaoTipo(tarifaSocialCartaoTipo); } SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Date dataValidade = null; try { dataValidade = formatoData.parse(form.getDataValidade()); } catch (ParseException ex) { dataValidade = null; } tarifaSocialDadoEconomia.setDataValidadeCartao(dataValidade); //Consumo Celpe if (form.getNumeroCelpe() != null && !form.getNumeroCelpe().equals("")) { tarifaSocialDadoEconomia.setConsumoCelpe(new Integer(form.getNumeroCelpe())); } //N�mero de parcelas if (form.getNumeroParcelas() != null && !form.getNumeroParcelas().equals("")) { tarifaSocialDadoEconomia.setNumeroMesesAdesao(new Short(form.getNumeroParcelas())); } if (form.getValorRendaFamiliar() != null && !form.getValorRendaFamiliar().equals("")) { tarifaSocialDadoEconomia.setValorRendaFamiliar(Util.formatarMoedaRealparaBigDecimal(form .getValorRendaFamiliar())); RendaTipo rendaTipo; FiltroRendaTipo filtroRendaTipo = new FiltroRendaTipo(); filtroRendaTipo.adicionarParametro(new ParametroSimples( FiltroRendaTipo.ID, form.getTipoRenda())); colecaoPesquisa = fachada.pesquisar(filtroRendaTipo, RendaTipo.class.getName()); rendaTipo = (RendaTipo) Util .retonarObjetoDeColecao(colecaoPesquisa); tarifaSocialDadoEconomia.setRendaTipo(rendaTipo); } if (form.getIdImovel() != null && !form.getIdImovel().equals("")) { if (form.getMotivoExclusao() != null && !form.getMotivoExclusao().equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { Integer idTarifaSocialExclusaoMotivo = new Integer(form.getMotivoExclusao()); // Seta o motivo da exclus�o na tarifa social antiga para ser // recuperado posteriormente TarifaSocialExclusaoMotivo tarifaSocialExclusaoMotivo = new TarifaSocialExclusaoMotivo(); tarifaSocialExclusaoMotivo.setId(idTarifaSocialExclusaoMotivo); tarifaSocialDadoEconomia.setTarifaSocialExclusaoMotivo(tarifaSocialExclusaoMotivo); // Recupera o id da tarifa social que ser� exclu�da quando o // usu�rio concluir o inser��o e coloca-o no objeto a ser // inserido para ser recuperado posteriormente String idTarifaSocialDadoEconomia = (String) sessao.getAttribute("idTarifaSocialDadoEconomia"); tarifaSocialDadoEconomia.setId(new Integer(idTarifaSocialDadoEconomia)); } else { throw new ActionServletException("atencao.tarifa_social_motivo_exclusao_nao_informado"); } } /* * Alterado para s� realizar a persist�ncia dos dados na conclus�o do * processo de inser��o da tarifa social - Raphael Rossiter 14/09/2005 */ // Seta novos campos no im�vel Imovel imovel = null; if (sessao.getAttribute("imovelAtualizado") != null) { imovel = (Imovel) sessao.getAttribute("imovelAtualizado"); } else { imovel = clienteImovel.getImovel(); } // N�mero do IPTU if (numeroIptu != null && !numeroIptu.trim().equals("")) { idImovel = fachada.verificarNumeroIptu(numeroIptuFormatado, imovel.getId(), null, imovel.getSetorComercial().getMunicipio().getId()); if (idImovel != null) { throw new ActionServletException("atencao.imovel.iptu_jacadastrado", null, idImovel.toString()); } imovel.setNumeroIptu(numeroIptuFormatado); } else { imovel.setNumeroIptu(null); } // N�mero do Contrato da Companhia El�trica if (numeroContratoCompanhiaEletrica != null && !numeroContratoCompanhiaEletrica.trim().equals("")) { Long numeroContratoCompanhiaEletricaFormatado = new Long(numeroContratoCompanhiaEletrica); idImovel = fachada.verificarNumeroCompanhiaEletrica(numeroContratoCompanhiaEletricaFormatado, imovel.getId(), null); if (idImovel != null) { throw new ActionServletException("atencao.imovel.numero_celpe_jacadastrado", null, idImovel.toString()); } imovel.setNumeroCelpe(numeroContratoCompanhiaEletricaFormatado); } else { imovel.setNumeroCelpe(null); } // �rea Constru�da if (areaConstruida != null && !areaConstruida.trim().equals("")) { imovel.setAreaConstruida(areaConstruidaFormatada); } else { imovel.setAreaConstruida(null); } // �rea Constru�da Faixa if (idAreaConstruidaFaixa != null && !idAreaConstruidaFaixa.trim().equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { AreaConstruidaFaixa areaConstruidaFaixa = new AreaConstruidaFaixa(); areaConstruidaFaixa.setId(new Integer(idAreaConstruidaFaixa)); imovel.setAreaConstruidaFaixa(areaConstruidaFaixa); } else { imovel.setAreaConstruidaFaixa(null); } // N�mero de Moradores if (numeroMoradores != null && !numeroMoradores.trim().equals("")) { imovel.setNumeroMorador(new Short(numeroMoradores)); } else { imovel.setNumeroMorador(null); } sessao.setAttribute("imovelAtualizado", imovel); Collection colecaoDadosTarifaSocial = new Vector(); //Prepara os objetos que ficar�o na sess�o if (chave.trim().equals("")) { colecaoDadosTarifaSocial.add(tarifaSocialDadoEconomia); } else { //Atualiza o registro na base tarifaSocialDadoEconomia.setId(new Integer(chave)); colecaoDadosTarifaSocial.add(tarifaSocialDadoEconomia); } // Coloca os dados da tarifa social na sess�o sessao.removeAttribute("clienteImovel"); sessao.setAttribute("clienteImovel", clienteImovel); sessao.removeAttribute("colecaoDadosTarifaSocial"); sessao.setAttribute("colecaoDadosTarifaSocial", colecaoDadosTarifaSocial); //Manda o parametro pelo request para que a p�gina de popup saiba a // hora de fechar httpServletRequest.setAttribute("operacaoConcluida", "true"); return retorno; } }