package gcom.gui.atendimentopublico; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.bean.ContaValoresHelper; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.faturamento.debito.DebitoACobrar; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Calendar; 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 R�mulo Aur�lio * @date 17/01/2007 */ public class EmitirSegundaViaContaInternetAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("exibirResultadoEmitirSegundaViaContaInternetAction"); HttpSession sessao = httpServletRequest.getSession(true); //Identifica a sess�o criada para o usu�rio da segunda via sessao.setAttribute("loginUsuarioSessao", "USUARIO_SEGUNDA_VIA_INTERNET"); if (sessao.getAttribute("acessoGeral") != null) { retorno = actionMapping.findForward("exibirResultadoEmitirSegundaViaContaInternetAcessoGeralAction"); } //Action Base ExibirEfetuarParcelamentoDebitosProcesso1Action SistemaParametro sistemaParametro = (SistemaParametro) sessao.getAttribute("sistemaParametro"); EmitirSegundaViaContaInternetActionForm form = (EmitirSegundaViaContaInternetActionForm) actionForm; Integer matricula = new Integer(form.getMatricula()); // Verificar existencia do im�vel Integer matriculaExistente = this.getFachada().verificarExistenciaImovel(matricula); Collection colecaoLocalidadeElo = null; if (matriculaExistente == 1) { form.setMatricula(matricula.toString()); Imovel imovel = this.getFachada().pesquisarImovel(new Integer(matricula)); Integer idLocalidade = imovel.getLocalidade().getId(); colecaoLocalidadeElo = this.pesquisarLocalidade(idLocalidade.toString()); Localidade localidade = null; if(colecaoLocalidadeElo != null && !colecaoLocalidadeElo.isEmpty()) localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidadeElo); //Localidade � o Elo if(localidade.getId().intValue() == localidade.getLocalidade().getId().intValue()){ form.setElo(localidade.getDescricao()); }else{ //Localidade nao � o Elo colecaoLocalidadeElo = this.pesquisarLocalidade(localidade.getLocalidade().getId().toString()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidadeElo); form.setElo(localidade.getDescricao()); } /** * Alterado por R�mulo Aur�lio * Data: 11/05/2007 */ BigDecimal totalContas = new BigDecimal("0.00"); BigDecimal totalContasPreterito = new BigDecimal("0.00"); BigDecimal valorTotalAcrescimoImpontualidadeContas = new BigDecimal("0.00"); Short nDiasVencimentoCobranca = sistemaParametro.getNumeroDiasVencimentoCobranca(); Date dataDebito = new Date(); Calendar calendar = Calendar.getInstance(); //Data Atual - Numero de dias vencimento Cobranca calendar.add(Calendar.DAY_OF_MONTH,-nDiasVencimentoCobranca.shortValue()); dataDebito = calendar.getTime(); form.setDataDebito(Util.formatarData(dataDebito)); // Ano mes Atual. String ano; String mes; Date dataCorrente = new Date(); String dataCorrenteTexto = Util.formatarData(dataCorrente); ano = dataCorrenteTexto.substring(6, 10); mes = dataCorrenteTexto.substring(3, 5); String anoMesInicialReferenciaDebito = "198501"; String anoMesFinalReferenciaDebito = ano + mes; //Date aux1 = dataInicioVencimentoDebito.getTime(); Date aux1 = Util.converteStringParaDate("01/01/1985"); //Date aux2 = dataFimVencimentoDebito.getTime(); Date aux2 = Util.converteStringParaDate("31/12/9999"); String tipoRelacao = "-1"; ObterDebitoImovelOuClienteHelper obterDebitoImovelOuClienteHelper = (ObterDebitoImovelOuClienteHelper) this.getFachada().obterDebitoImovelOuCliente(1, form.getMatricula(), null, new Short(tipoRelacao), anoMesInicialReferenciaDebito, anoMesFinalReferenciaDebito, aux1, aux2, 1, 1, 1, 1, 1, 1, 1, null); Collection colecaoContasValores = obterDebitoImovelOuClienteHelper.getColecaoContasValores(); Collection<ContaValoresHelper> colecaoContaValoresPreteritos = obterDebitoImovelOuClienteHelper.getColecaoContasValoresPreteritos(); if ((colecaoContasValores == null || colecaoContasValores.isEmpty()) && (colecaoContaValoresPreteritos == null || colecaoContaValoresPreteritos.isEmpty())) { throw new ActionServletException("atencao.imovel_sem_debitos"); } else { if (colecaoContasValores != null){ Iterator colecaoContasValoresIterator = colecaoContasValores.iterator(); while (colecaoContasValoresIterator.hasNext()) { ContaValoresHelper contaValoresHelper = (ContaValoresHelper) colecaoContasValoresIterator.next(); totalContas = totalContas.add(contaValoresHelper.getValorTotalConta()); valorTotalAcrescimoImpontualidadeContas = valorTotalAcrescimoImpontualidadeContas.add(contaValoresHelper.getValorTotalContaValores()); } } if (colecaoContaValoresPreteritos != null){ Iterator colecaoContaValoresPreteritoIterator = colecaoContaValoresPreteritos.iterator(); while (colecaoContaValoresPreteritoIterator.hasNext()) { ContaValoresHelper contaValoresPreteritoHelper = (ContaValoresHelper) colecaoContaValoresPreteritoIterator.next(); totalContasPreterito = totalContasPreterito.add(contaValoresPreteritoHelper.getValorTotalConta()); } } httpServletRequest.setAttribute("totalContas", getTotalContasFormatado(totalContas.add(totalContasPreterito))); // //httpServletRequest.setAttribute("totalContas", totalContas.add(totalContasPreterito)); form.setValorDebito(Util.formatarMoedaReal(totalContas)); form.setValorEncargosACobrar(Util.formatarMoedaReal(valorTotalAcrescimoImpontualidadeContas)); } httpServletRequest.setAttribute("colecaoContaValoresPreteritos",colecaoContaValoresPreteritos); httpServletRequest.setAttribute("colecaoContasValores",colecaoContasValores); form.setNomeCliente(this.getFachada().obterNomeCliente(matricula)); ObterDebitoImovelOuClienteHelper colecaoDebitoImovel = this.getFachada().obterDebitoImovelOuCliente( 1, // Indicador d�bito im�vel matricula.toString(), // Matr�cula do im�vel null, // C�digo do cliente null, // Tipo de rela��o do cliento com o // im�vel "000101", // Refer�ncia inicial do d�bito "999912", // Refer�ncia final do d�bito Util.converteStringParaDate("01/01/0001"), // Inicio // Vencimento Util.converteStringParaDate("31/12/9999"), // Final // Vencimento 1, // Indicador pagamento 1, // Indicador conta em revis�o 1, // Indicador d�bito a cobrar 1, // Indicador cr�dito a realizar 1, // Indicador notas promiss�rias 1, // Indicador guias de pagamento 1, // Indicador acr�scimos por impontualidade null); // Indicador Contas Collection colecaoDebitoACobrar = colecaoDebitoImovel.getColecaoDebitoACobrar(); BigDecimal valorTotalDebitoACobrar = new BigDecimal("0.00"); if (colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()) { Iterator debitoACobrarValores = colecaoDebitoACobrar.iterator(); while (debitoACobrarValores.hasNext()) { DebitoACobrar debitoACobrar = (DebitoACobrar) debitoACobrarValores.next(); valorTotalDebitoACobrar = valorTotalDebitoACobrar.add(debitoACobrar.getValorTotalComBonus()); } } //valor outros servi�os so aparece para CAEMA //RM986 - Vivianne Sousa - 15/06/2011 form.setValorOutrosServicosACobrar(Util.formatarMoedaReal(valorTotalDebitoACobrar)); // Acrescimos por Impotualidade BigDecimal retornoSoma = new BigDecimal("0.00"); retornoSoma = retornoSoma.add(valorTotalAcrescimoImpontualidadeContas); valorTotalDebitoACobrar = valorTotalDebitoACobrar.add(retornoSoma); form.setDebitoACobrar(Util.formatarMoedaReal(valorTotalDebitoACobrar)); } else { throw new ActionServletException("atencao.matricula.imovel.inexistente"); } /* * Colocado por Raphael Rossiter em 21/10/2008 - Analista: Rosana Carvalho * * [FS0003] - Verificar se documento � v�lido * [FS0004] - Cliente n�o associado ao documento */ String cpf = (String) httpServletRequest.getParameter("cpf"); String cnpj = (String) httpServletRequest.getParameter("cnpj"); this.getFachada().verificarDocumentoValidoEmissaoInternet(matricula, cpf, cnpj); return retorno; } public Collection pesquisarLocalidade(String idLocalidade){ Collection colecaoLocalidadeElo = null; FiltroLocalidade filtrolocalidade = new FiltroLocalidade(); filtrolocalidade.adicionarParametro( new ParametroSimples( FiltroLocalidade.ID, idLocalidade)); colecaoLocalidadeElo = this.getFachada().pesquisar(filtrolocalidade, Localidade.class.getName()); return colecaoLocalidadeElo; } public String getTotalContasFormatado(BigDecimal totalContas) { return Util.converterDecimalParaString(totalContas); } }