package gcom.gui.portal; import gcom.cobranca.bean.ContaValoresHelper; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.fachada.Fachada; import gcom.faturamento.debito.DebitoACobrar; import gcom.gui.GcomAction; import gcom.util.Util; 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; /** * Classe Respons�vel pela emiss�o da segunda via da conta no portal da COMPESA * * @author Diogo Peixoto * @date 17/05/2011 */ public class EmitirSegundaViaContaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = null; try { EmitirSegundaViaContaActionForm form = (EmitirSegundaViaContaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(true); form.setMatricula(String.valueOf((Integer) sessao.getAttribute("matricula"))); form.setNomeUsuario((String) sessao.getAttribute("nomeUsuario")); if (form.getMatricula() != null && !form.getMatricula().equals("")) { BigDecimal totalContas = new BigDecimal("0.00"); BigDecimal valorTotalAcrescimoImpontualidadeContas = new BigDecimal("0.00"); Short nDiasVencimentoCobranca = Fachada.getInstancia().pesquisarParametrosDoSistema().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.setData(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<ContaValoresHelper> colecaoContasValores = obterDebitoImovelOuClienteHelper.getColecaoContasValores(); if (colecaoContasValores == null || colecaoContasValores.isEmpty()) { retorno = actionMapping.findForward("matriculaSemDebito"); httpServletRequest.setAttribute("imovelSemDebito", true); } else { retorno = actionMapping.findForward("emitirSegundaViaContaAction"); Iterator<ContaValoresHelper> colecaoContasValoresIterator = colecaoContasValores.iterator(); httpServletRequest.setAttribute("voltarServicos", true); while (colecaoContasValoresIterator.hasNext()) { ContaValoresHelper contaValoresHelper = (ContaValoresHelper) colecaoContasValoresIterator.next(); totalContas = totalContas.add(contaValoresHelper.getValorTotalConta()); valorTotalAcrescimoImpontualidadeContas = valorTotalAcrescimoImpontualidadeContas.add(contaValoresHelper.getValorTotalContaValores()); } form.setValorDebito(Util.formatarMoedaReal(totalContas)); } ObterDebitoImovelOuClienteHelper colecaoDebitoImovel = this.getFachada().obterDebitoImovelOuCliente( 1, // Indicador d�bito im�vel form.getMatricula(), // 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<DebitoACobrar> colecaoDebitoACobrar = colecaoDebitoImovel.getColecaoDebitoACobrar(); BigDecimal valorTotalDebitoACobrar = new BigDecimal("0.00"); if (colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()) { Iterator<DebitoACobrar> debitoACobrarValores = colecaoDebitoACobrar.iterator(); while (debitoACobrarValores.hasNext()) { DebitoACobrar debitoACobrar = (DebitoACobrar) debitoACobrarValores.next(); valorTotalDebitoACobrar = valorTotalDebitoACobrar.add(debitoACobrar.getValorTotalComBonus()); } } httpServletRequest.setAttribute("totalContas", totalContas); httpServletRequest.setAttribute("colecaoContasValores", colecaoContasValores); // Acrescimos por Impotualidade BigDecimal retornoSoma = new BigDecimal("0.00"); retornoSoma = retornoSoma.add(valorTotalAcrescimoImpontualidadeContas); valorTotalDebitoACobrar = valorTotalDebitoACobrar.add(retornoSoma); form.setValorDebitoCobrado(Util.formatarMoedaReal(valorTotalDebitoACobrar)); } } catch (Exception e) { retorno = actionMapping.findForward("erroSistemaPortal"); httpServletRequest.setAttribute("erroSistema", true); } return retorno; } }