package gcom.faturamento; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaForma; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.faturamento.bean.EmitirContaHelper; import gcom.faturamento.consumotarifa.ConsumoTarifaVigencia; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaMotivoRevisao; import gcom.faturamento.debito.DebitoACobrar; import gcom.faturamento.debito.DebitoACobrarGeral; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.faturamento.debito.DebitoTipo; import gcom.faturamento.debito.DebitoTipoVigencia; import gcom.faturamento.debito.FiltroDebitoTipo; import gcom.micromedicao.Rota; import gcom.micromedicao.consumo.ConsumoAnormalidade; import gcom.micromedicao.consumo.ConsumoHistorico; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; import javax.ejb.SessionBean; /** * Controlador Faturamento COMPESA * * @author Raphael Rossiter * @date 25/07/2006 */ public class ControladorFaturamentoCOMPESASEJB extends ControladorFaturamento implements SessionBean { private static final long serialVersionUID = 1L; //============================================================================================================== // M�TODOS EXCLUSIVOS DA COMPESA //============================================================================================================== /** * [UC0120] - Calcular Valores de �gua e/ou Esgoto * * Selecionar as tarifas vigentes para o im�vel * * @author Raphael Rossiter * @date 28/05/2008 * * @param tarifaImovel * @param dataLeituraAnterior * @param dataLeituraAtual * @param anoMesReferencia * @return Collection * @throws ControladorException */ public Collection obterConsumoTarifaVigenciaCalcularAguaEsgoto(Integer tarifaImovel, Date dataLeituraAnterior, Date dataLeituraAtual, Integer anoMesReferencia) throws ControladorException{ Collection colecaoConsumoTarifaVigenciaTodasDatas = new ArrayList(); if (tarifaImovel != null && dataLeituraAnterior != null && dataLeituraAtual != null) { /* * Seleciona todas as ocorr�ncias da tabela CONSUMO_TARIFA_VIGENCIA com * CSTF_ID=Id da tarifa para o im�vel e com CSTV_DTVIGENCIA entre as * datas de leitura anterior e atual */ Collection colecaoConsumoTarifaVigenciaEntreDatas = selecionaTarifasVigentesPeriodoLeituraImovel( tarifaImovel, dataLeituraAnterior, dataLeituraAtual, true); /* * Caso n�o seja selecionada nenhuma ocorr�ncia ou caso nenhuma * ocorr�ncia selecionada tenha CSTV_DTVIGENCIA = data de leitura * anterior, selecionar tamb�m a ocorr�ncia da tabela * CONSUMO_TARIFA_VIGENCIA com CSTF_ID= Id da tarifa para o im�vel e * com a maior CSTV_DTVIGENCIA que seja menor que a data de leitura * anterior. */ if (colecaoConsumoTarifaVigenciaEntreDatas == null || colecaoConsumoTarifaVigenciaEntreDatas.isEmpty()) { Collection colecaoConsumoTarifaVigenciaMaiorData = selecionaTarifasVigentesPeriodoLeituraImovel( tarifaImovel, dataLeituraAnterior, dataLeituraAtual, false); colecaoConsumoTarifaVigenciaTodasDatas .addAll(colecaoConsumoTarifaVigenciaMaiorData); } else { ConsumoTarifaVigencia consumoTarifaVigencia = null; Iterator itConsumoTarifaVigencia = colecaoConsumoTarifaVigenciaEntreDatas.iterator(); boolean flagBuscarOcorrencia = true; while (itConsumoTarifaVigencia.hasNext()) { consumoTarifaVigencia = (ConsumoTarifaVigencia) itConsumoTarifaVigencia.next(); /* * Verifica se j� existe alguma ocorr�ncia onde a * dataVigencia � igual a dataLeituraAnterior */ if (consumoTarifaVigencia.getDataVigencia() != null && Util.datasIguais(consumoTarifaVigencia.getDataVigencia(), dataLeituraAnterior)) { flagBuscarOcorrencia = false; break; } } colecaoConsumoTarifaVigenciaTodasDatas.addAll(colecaoConsumoTarifaVigenciaEntreDatas); if (flagBuscarOcorrencia) { Collection colecaoConsumoTarifaVigenciaMaiorData = selecionaTarifasVigentesPeriodoLeituraImovel( tarifaImovel, dataLeituraAnterior, dataLeituraAtual, false); /* * As tarifas vigentes para o per�odo de leitura ser�o as * ocorr�ncias selecionadas nas cole��es parcial e final */ colecaoConsumoTarifaVigenciaTodasDatas.addAll(colecaoConsumoTarifaVigenciaMaiorData); // Organizar a cole��o Collections.sort((List) colecaoConsumoTarifaVigenciaTodasDatas, new Comparator() { public int compare(Object a, Object b) { Date dataVigencia1 = ((ConsumoTarifaVigencia) a) .getDataVigencia(); Date dataVigencia2 = ((ConsumoTarifaVigencia) b) .getDataVigencia(); return dataVigencia1.compareTo(dataVigencia2); } } ); } } } return colecaoConsumoTarifaVigenciaTodasDatas; } /** * Met�do respons�vel por emitir os txts das contas. * * [UC0348] Emitir Contas * * [SB00016] Obter Mensagem da Conta em 3 Partes * * @author S�vio Luiz * @date 24/05/2006 * * @param colecaoConta * @throws ControladorException */ public String[] obterMensagemConta3Partes( EmitirContaHelper emitirContaHelper, SistemaParametro sistemaParametro) throws ControladorException { String[] linhasImpostosRetidos = new String[3]; boolean achou = false; if (!achou) { // Caso tenha mensagem de quita��o de debitos Integer anoMensagem = null; if(emitirContaHelper.getAnoMesFaturamentoGrupo()!=null){ try { anoMensagem = repositorioFaturamento .pesquisarMesagemExtrato(emitirContaHelper.getAnoMesFaturamentoGrupo(), emitirContaHelper.getIdImovel()); } catch (ErroRepositorioException e) { e.printStackTrace(); throw new ControladorException("erro.sistema", e); } } if (anoMensagem != null) { linhasImpostosRetidos[0] = "IMOVEL NAO POSSUI DEBITOS DE " + anoMensagem+",EXCETO"; linhasImpostosRetidos[1] = "SE EXISTIR FATURA EM COBRANCA JUDICIAL"; linhasImpostosRetidos[2] = ""; achou = true; } } if(!achou){ // mensagem da conta para a anormalidade de consumo (Baixo Consumo,Auto Consumo e Estouro de Consumo) linhasImpostosRetidos = obterMensagemAnormalidadeConsumo(emitirContaHelper); if(linhasImpostosRetidos == null || linhasImpostosRetidos.equals("")){ linhasImpostosRetidos = new String[3]; Integer anoMesReferenciaFinal = sistemaParametro.getAnoMesFaturamento(); int anoMesSubtraido = Util .subtrairMesDoAnoMes(anoMesReferenciaFinal, 1); Integer dataVencimentoFinalInteger = sistemaParametro .getAnoMesArrecadacao(); String anoMesSubtraidoString = "" + Util.subtrairMesDoAnoMes(dataVencimentoFinalInteger, 1); int ano = Integer.parseInt(anoMesSubtraidoString.substring(0, 4)); int mes = Integer.parseInt(anoMesSubtraidoString.substring(4, 6)); // recupera o ultimo dia do anomes e passa a data como parametro Calendar dataVencimentoFinal = GregorianCalendar.getInstance(); dataVencimentoFinal.set(Calendar.YEAR, ano); dataVencimentoFinal.set(Calendar.MONTH, (mes - 1)); dataVencimentoFinal.set(Calendar.DAY_OF_MONTH, dataVencimentoFinal .getActualMaximum(Calendar.DAY_OF_MONTH)); Date dataFinalDate = dataVencimentoFinal.getTime(); // converte String em data Date dataVencimento = Util.converteStringParaDate("01/01/1900"); ObterDebitoImovelOuClienteHelper debitoImovelClienteHelper = getControladorCobranca() .obterDebitoImovelOuCliente(1, "" + emitirContaHelper.getIdImovel(), null, null, "190001", "" + anoMesSubtraido, dataVencimento, dataFinalDate, 1, 2, 2, 2, 2, 1, 2, null); // se o imovel possua d�bito(debitoImovelCobran�a for diferente de nulo) if (debitoImovelClienteHelper != null && ((debitoImovelClienteHelper .getColecaoGuiasPagamentoValores() != null && !debitoImovelClienteHelper .getColecaoGuiasPagamentoValores().isEmpty()) || (debitoImovelClienteHelper .getColecaoContasValores() != null && !debitoImovelClienteHelper .getColecaoContasValores().isEmpty()))) { String dataVencimentoFinalString = Util.formatarData(dataFinalDate); linhasImpostosRetidos[0] = "EM " + dataVencimentoFinalString + ", REGISTRAMOS QUE V.SA."; //linhasImpostosRetidos[1] = "COMPARE�A A UM DOS NOSSOS POSTOS DE ATENDIMENTO PARA REGULARIZAR SUA SITUACAO.EVITE O CORTE."; linhasImpostosRetidos[1] = "ESTAVA EM D�BITO COM A COMPESA CASO"; linhasImpostosRetidos[2] = "J� O TENHA PAGO, DESCONSIDERE ESTE AVISO."; // linhasImpostosRetidos[2] = "REAJUSTE TARIF�RIO 7,31% PRO RATA A PARTIR DE 29/09/2008."; } else { Object[] mensagensConta = null; // recupera o id do grupo de faturamento da conta Integer idFaturamentoGrupo = emitirContaHelper .getIdFaturamentoGrupo(); // recupera o id da gerencia regional da conta Integer idGerenciaRegional = emitirContaHelper .getIdGerenciaRegional(); // recupera o id da localidade da conta Integer idLocalidade = emitirContaHelper.getIdLocalidade(); // recupera o id do setor comercial da conta Integer idSetorComercial = emitirContaHelper.getIdSetorComercial(); // caso entre em alguma condi��o ent�o n�o entra mais nas outras try { // o sistema obtem a mensagem para a conta // Caso seja a condi��o 1 // (FaturamentoGrupo =null, GerenciaRegional=parmConta, // Localidade=parmConta, SetorComercial=parmConta) mensagensConta = repositorioFaturamento .pesquisarParmsContaMensagem(emitirContaHelper, null, idGerenciaRegional, idLocalidade, idSetorComercial); if (mensagensConta != null) { // Conta Mensagem 1 if (mensagensConta[0] != null) { linhasImpostosRetidos[0] = (String) mensagensConta[0]; } else { linhasImpostosRetidos[0] = ""; } // Conta Mensagem 2 if (mensagensConta[1] != null) { linhasImpostosRetidos[1] = (String) mensagensConta[1]; } else { linhasImpostosRetidos[1] = ""; } // Conta Mensagem 3 if (mensagensConta[2] != null) { linhasImpostosRetidos[2] = (String) mensagensConta[2]; } else { linhasImpostosRetidos[2] = ""; } achou = true; } if (!achou) { // Caso seja a condi��o 2 // (FaturamentoGrupo =null, GerenciaRegional=parmConta, // Localidade=null, SetorComercial=null) // Conta Mensagem 1 mensagensConta = repositorioFaturamento .pesquisarParmsContaMensagem(emitirContaHelper, null, idGerenciaRegional, idLocalidade, null); if (mensagensConta != null) { if (mensagensConta[0] != null) { linhasImpostosRetidos[0] = (String) mensagensConta[0]; } else { linhasImpostosRetidos[0] = ""; } // Conta Mensagem 2 if (mensagensConta[1] != null) { linhasImpostosRetidos[1] = (String) mensagensConta[1]; } else { linhasImpostosRetidos[1] = ""; } // Conta Mensagem 3 if (mensagensConta[2] != null) { linhasImpostosRetidos[2] = (String) mensagensConta[2]; } else { linhasImpostosRetidos[2] = ""; } achou = true; } } if (!achou) { // Caso seja a condi��o 3 // (FaturamentoGrupo =null, GerenciaRegional=parmConta, // Localidade=null, SetorComercial=null) // Conta Mensagem 1 mensagensConta = repositorioFaturamento .pesquisarParmsContaMensagem(emitirContaHelper, null, idGerenciaRegional, null, null); if (mensagensConta != null) { if (mensagensConta[0] != null) { linhasImpostosRetidos[0] = (String) mensagensConta[0]; } else { linhasImpostosRetidos[0] = ""; } // Conta Mensagem 2 if (mensagensConta[1] != null) { linhasImpostosRetidos[1] = (String) mensagensConta[1]; } else { linhasImpostosRetidos[1] = ""; } // Conta Mensagem 3 if (mensagensConta[2] != null) { linhasImpostosRetidos[2] = (String) mensagensConta[2]; } else { linhasImpostosRetidos[2] = ""; } achou = true; } } if (!achou) { // Caso seja a condi��o 4 // (FaturamentoGrupo =parmConta, GerenciaRegional=null, // Localidade=null, SetorComercial=null) // Conta Mensagem 1 mensagensConta = repositorioFaturamento .pesquisarParmsContaMensagem(emitirContaHelper, idFaturamentoGrupo, null, null, null); if (mensagensConta != null) { if (mensagensConta[0] != null) { linhasImpostosRetidos[0] = (String) mensagensConta[0]; } else { linhasImpostosRetidos[0] = ""; } // Conta Mensagem 2 if (mensagensConta[1] != null) { linhasImpostosRetidos[1] = (String) mensagensConta[1]; } else { linhasImpostosRetidos[1] = ""; } // Conta Mensagem 3 if (mensagensConta[2] != null) { linhasImpostosRetidos[2] = (String) mensagensConta[2]; } else { linhasImpostosRetidos[2] = ""; } achou = true; } } if (!achou) { // Caso seja a condi��o 5 // (FaturamentoGrupo =null, GerenciaRegional=null, // Localidade=null, SetorComercial=null) // Conta Mensagem 1 mensagensConta = repositorioFaturamento .pesquisarParmsContaMensagem(emitirContaHelper, null, null, null, null); if (mensagensConta != null) { if (mensagensConta[0] != null) { linhasImpostosRetidos[0] = (String) mensagensConta[0]; } else { linhasImpostosRetidos[0] = ""; } // Conta Mensagem 2 if (mensagensConta[1] != null) { linhasImpostosRetidos[1] = (String) mensagensConta[1]; } else { linhasImpostosRetidos[1] = ""; } // Conta Mensagem 3 if (mensagensConta[2] != null) { linhasImpostosRetidos[2] = (String) mensagensConta[2]; } else { linhasImpostosRetidos[2] = ""; } achou = true; } } // caso n�o tenha entrado em nenhuma das op��es acima // ent�o completa a string com espa��s em branco if (!achou) { linhasImpostosRetidos[0] = ""; linhasImpostosRetidos[1] = ""; linhasImpostosRetidos[2] = ""; } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } } } //7.Caso imov_amrefexclusaotarifasocial = cnta_amreferenciaconta Integer anoMesExclusaoTarifaSocialImovel = getControladorImovel().pesquisarAnoMesExclusaoTarifaSocialImovel(emitirContaHelper.getIdImovel()); if(anoMesExclusaoTarifaSocialImovel != null && anoMesExclusaoTarifaSocialImovel.equals(emitirContaHelper.getAmReferencia())){ linhasImpostosRetidos[0] = "PREZADO CLIENTE, SEU BENEF�CIO DA TARIFA SOCIAL FOI CANCELADO "; linhasImpostosRetidos[1] = "DEVIDO A SUA M�DIA DE CONSUMO NOS �LTIMOS 06(SEIS) MESES "; linhasImpostosRetidos[2] = "TER EXCEDIDO OS 10m�"; } return linhasImpostosRetidos; } /** * [UC0113] Faturar Grupo de Faturamento * * [SB0006] - Gerar Dados da Conta * * @author Raphael Rossiter * @date 31/03/2008 * * @param consumoHistoricoAgua * @return ContaMotivoRevisao * @throws ControladorException */ public ContaMotivoRevisao determinarContaMotivoRevisao(ConsumoHistorico consumoHistoricoAgua) throws ControladorException{ ContaMotivoRevisao contaMotivoRevisao = null; if (consumoHistoricoAgua != null) { if (consumoHistoricoAgua.getConsumoAnormalidade() != null && (consumoHistoricoAgua.getConsumoAnormalidade().getId().equals(ConsumoAnormalidade.ESTOURO_CONSUMO) || consumoHistoricoAgua.getConsumoAnormalidade().getId().equals(ConsumoAnormalidade.BAIXO_CONSUMO))) { if (consumoHistoricoAgua.getConsumoAnormalidade().getId() .equals(ConsumoAnormalidade.ESTOURO_CONSUMO)) { contaMotivoRevisao = new ContaMotivoRevisao(); contaMotivoRevisao.setId(ContaMotivoRevisao.REVISAO_AUTOMATICA_ESTOURO_CONSUMO); } if (consumoHistoricoAgua.getConsumoAnormalidade().getId() .equals(ConsumoAnormalidade.BAIXO_CONSUMO)) { contaMotivoRevisao = new ContaMotivoRevisao(); contaMotivoRevisao.setId(ContaMotivoRevisao.REVISAO_AUTOMATICA_BAIXO_CONSUMO); } } } return contaMotivoRevisao; } /** * [UC0113] Faturar Grupo de Faturamento * * � necess�rio colocar a query abaixo no processo de faturar grupo como uma funcionalidade * (Antes de rodar o faturar), para atender uma necessidade de uma localidade (Petrolina), onde existe uma * cobran�a diferenciada de esgoto. CRC771 - Socorro Oliveira * * UPDATE atendimentopublico.ligacao_esgoto * set lesg_pcalternativo = 50.00, * lesg_nnconsumopcalternativo = 20 * WHERE lesg_id in ( * select im.imov_id from cadastro.imovel im * INNER JOIN cadastro.quadra qdra on (qdra.qdra_id = im.qdra_id) * INNER JOIN micromedicao.rota rota on (rota.rota_id = qdra.rota_id) * INNER JOIN cadastro.imovel_subcategoria ims on (im.imov_id = ims.imov_id) * WHERE rota.rota_id = ? * AND im.loca_id = 111 * AND im.last_id in (3,4,5) * AND im.lest_id = 3 * AND ims.scat_id < 20) * AND lesg_nnconsumopcalternativo is null; * * @author Raphael Rossiter * @date 22/12/2008 * * @param rota * @param atividade * @throws ControladorException */ protected void atualizarLigacaoEsgotoPorRota(Rota rota, int atividade) throws ControladorException { /* * As atualiza��es s� ser�o realmente efetivadas quando o processo que esteja rodando N�O * seja para simula��o. */ if (atividade == FaturamentoAtividade.FATURAR_GRUPO.intValue()) { BigDecimal PC_ALTERNATIVO = new BigDecimal("50.00"); Integer CONSUMO_PC_ALTERNATIVO = 20; try { repositorioFaturamento.atualizarLigacaoEsgotoPorRota(PC_ALTERNATIVO, CONSUMO_PC_ALTERNATIVO, rota); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } } /** * [UC0482] Emitir Segunda Via de Conta * * @author Vivianne Sousa * @date 21/02/2007 * * @param * @throws ControladorException */ public void gerarDebitoACobrarTaxaEmissaoConta(Integer idImovel, int anoMesReferencia) throws ControladorException { try { Imovel imovel = getControladorImovel().pesquisarImovel(idImovel); // Recupera os parametros do sistema SistemaParametro sistema = getControladorUtil() .pesquisarParametrosDoSistema(); // Inst�ncia a forma de cobran�a para cobran�a em conta CobrancaForma cobrancaForma = new CobrancaForma(); cobrancaForma.setId(CobrancaForma.COBRANCA_EM_CONTA); // Inst�ncia a situa��o do d�bito para normal DebitoCreditoSituacao debitoCreditoSituacao = new DebitoCreditoSituacao(); debitoCreditoSituacao.setId(DebitoCreditoSituacao.NORMAL); /* * 4.1. Atrav�s da constante 22 (TAXA EMISSAO 2� VIA) * identificada na coluna DBTP_NNCODIGOCONSTANTE na tabela * DEBITO_TIPO obter o DBTP_ID. * * Desenvolvedor Hugo Amorim * Analista Nelson Carvalho * Data: 17/05/210 */ DebitoTipo debitoTipo = null; FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo(); filtroDebitoTipo.adicionarParametro( new ParametroSimples( FiltroDebitoTipo.CODIGO_CONSTANTE, DebitoTipo.CONSTANTE_TAXA_2_VIA_CONTA)); debitoTipo = (DebitoTipo) Util.retonarObjetoDeColecao( this.getControladorUtil().pesquisar( filtroDebitoTipo, DebitoTipo.class.getName())); // Recupera a data atual Date dataAtual = new Date(System.currentTimeMillis()); // Verifica se j� existe d�bito para este im�vel /*Object[] dadoDebitoACobrar = this.repositorioFaturamento .pesquisarDebitoACobrar(imovel.getId(), debitoTipo.getId(), sistema.getAnoMesFaturamento());*/ /* * 4.1.1. Atrav�s do DBTP_ID relacionar com o DBTP_ID da tabela DEBITO_TIPO_VIGENCIA. * Selecionar a �ltima vig�ncia (maior data DBTV_DTVIGENCIAFINAL) para o tipo de d�bito * o valor DBTV_VLDEBITO correspondente. * 4.1.2. Caso n�o seja encontrado para uma vig�ncia e tipo de d�bito na tabela * DEBITO_TIPO_VIGENCIA, dever� selecionar o valor sugerido (DBTP_VLSUGERIDO<>0) * correspondente a constante 22 na tabela DEBITO_TIPO e utilizar este valor. * * Desenvolvedor Hugo Amorim * Analista Nelson Carvalho * Data: 17/05/210 */ // Cria a vari�vel que vai armazenar o valor do d�bito BigDecimal valor = new BigDecimal("0"); // /* // * Caso o perfil do im�vel seja tarifa social o valor vai ser o // * valor da tarifa social Caso contr�rio o valor da tarifa vai ser o // * normal. // */ // if (!imovel.getImovelPerfil().getId().equals( // ImovelPerfil.TARIFA_SOCIAL)) { // // caso o im�vel n�o seja enquadrado em tarifa social // // // Obt�m o valor da Tarifa Normal // BigDecimal valorMinimaTarifaNormal = this.repositorioFaturamento // .obterValorTarifa(ConsumoTarifa.CONSUMO_NORMAL); // // // Caso o valor da tarifa normal esteja nulo seta o valor para // // zero // if (valorMinimaTarifaNormal == null) { // valorMinimaTarifaNormal = new BigDecimal("0"); // } // // valor = valorMinimaTarifaNormal; // // } else if (imovel.getImovelPerfil().getId().equals( // ImovelPerfil.TARIFA_SOCIAL)) { // // caso o im�vel seja enquadrado em tarifa social // // // Obt�m o valor da Tarifa Social // BigDecimal valorMinimaTarifaSocial = this.repositorioFaturamento // .obterValorTarifa(ConsumoTarifa.CONSUMO_SOCIAL); // // // Caso o valor da tarifa social esteja nulo seta o valor para // // zero // if (valorMinimaTarifaSocial == null) { // valorMinimaTarifaSocial = new BigDecimal("0"); // } // // valor = valorMinimaTarifaSocial; // } DebitoTipoVigencia debitoTipoVigencia = this.repositorioFaturamento .pesquisarDebitoTipoVigenciaPorDebitoTipo(debitoTipo.getId()); if(debitoTipoVigencia!=null && debitoTipoVigencia.getValorDebito()!=null){ valor = debitoTipoVigencia.getValorDebito(); }else if(debitoTipo.getValorSugerido()!=null && debitoTipo.getValorSugerido().compareTo(BigDecimal.ZERO)!=0){ valor = debitoTipo.getValorSugerido(); } // inclui D�bito A Cobrar Geral DebitoACobrarGeral debitoACobrarGeral = new DebitoACobrarGeral(); debitoACobrarGeral .setIndicadorHistorico(DebitoACobrarGeral.INDICADOR_NAO_POSSUI_HISTORICO); debitoACobrarGeral.setUltimaAlteracao(new Date()); Integer idDebitoACobrarGeral = (Integer) this.getControladorUtil() .inserir(debitoACobrarGeral); debitoACobrarGeral.setId(idDebitoACobrarGeral); // Cria uma inst�ncia de d�bito a cobrar DebitoACobrar debitoACobrar = new DebitoACobrar(); debitoACobrar.setId(debitoACobrarGeral.getId()); debitoACobrar.setDebitoACobrarGeral(debitoACobrarGeral); // Seta o Im�vel debitoACobrar.setImovel(imovel); // Seta o D�bito Tipo debitoACobrar.setDebitoTipo(debitoTipo); // Seta Data e Hora Atual debitoACobrar.setGeracaoDebito(dataAtual); // Seta ano/m�s da conta emitida como 2 via debitoACobrar.setAnoMesReferenciaDebito(anoMesReferencia); // Seta Ano/M�s de Cobran�a debitoACobrar.setAnoMesCobrancaDebito(sistema .getAnoMesArrecadacao()); // Seta Ano/M�s Refer�ncia do Faturamento //Alteracao CRC1389 Data:09/03/2009 //Author: R�mulo Aur�lio //Analista: Rosana Carvalho int anoMesAtual = Util.getAnoMesComoInt(new Date()); if(sistema .getAnoMesFaturamento().compareTo(anoMesAtual) < 0){ debitoACobrar.setAnoMesReferenciaContabil(anoMesAtual); }else{ debitoACobrar.setAnoMesReferenciaContabil(sistema .getAnoMesFaturamento()); } //Fim Alteracao CRC1389 Data:09/03/2009 // Seta Valor do D�bito debitoACobrar.setValorDebito(valor); // Seta N�mero de Presta��es do D�bito debitoACobrar.setNumeroPrestacaoDebito(new Short("1")); // Seta N�mero de Presta��es Cobradas debitoACobrar.setNumeroPrestacaoCobradas(new Short("0")); // Seta Localidade debitoACobrar.setLocalidade(imovel.getLocalidade()); // Seta Quadra debitoACobrar.setQuadra(imovel.getQuadra()); // Seta C�digo do Setor Comercial debitoACobrar.setCodigoSetorComercial(imovel.getSetorComercial() .getCodigo()); // Seta N�mero Quadra debitoACobrar.setNumeroQuadra(imovel.getQuadra().getNumeroQuadra()); // Seta Lote debitoACobrar.setNumeroLote(imovel.getLote()); // Seta SubLote debitoACobrar.setNumeroSubLote(imovel.getSubLote()); // Seta Taxa de Juros do Financiamento debitoACobrar.setPercentualTaxaJurosFinanciamento(new BigDecimal( "0")); // Seta Financiamento Tipo debitoACobrar.setFinanciamentoTipo(debitoTipo .getFinanciamentoTipo()); // Seta Lan�amento Item Cont�bil debitoACobrar.setLancamentoItemContabil(debitoTipo .getLancamentoItemContabil()); // Seta D�bito Cr�dito Situa��o debitoACobrar.setDebitoCreditoSituacaoAtual(debitoCreditoSituacao); // Seta Cobran�a Forma debitoACobrar.setCobrancaForma(cobrancaForma); // Seta a data de ultima altera��o debitoACobrar.setUltimaAlteracao(new Date()); Integer idDebitoACobrar = (Integer) this.getControladorUtil() .inserir(debitoACobrar); debitoACobrar.setId(idDebitoACobrar); // Recupera Categorias por Im�vel Collection<Categoria> colecaoCategoria = this .getControladorImovel().obterQuantidadeEconomiasCategoria( imovel); // Recupera Valores por Categorias Collection<BigDecimal> colecaoValoresCategorias = this .getControladorImovel().obterValorPorCategoria( colecaoCategoria, valor); // Insere d�bito a cobrar por categoria inserirDebitoACobrarCategoria(colecaoCategoria, colecaoValoresCategorias, debitoACobrar); } catch (Exception ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que retorna uma array de object com a soma do valor dos debitos * cobrados de parcelamento,o numero da prestacao e o numero total de * presta��es * * [UC0348] Emitir Contas * * [SB0013] Gerar Linhas dos D�bitos Cobrados * * @author S�vio Luiz,Vivianne Sousa * @date 19/05/2006,16/05/2007 * * * @param idConta * @return * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarParmsDebitoAutomatico(Integer idConta) throws ControladorException{ try { return repositorioFaturamento. pesquisarParmsDebitoAutomaticoParcelasMaisJurosParcelamento(idConta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que retorna uma array de object com a soma do valor dos debitos * cobrados de parcelamento,o numero da prestacao e o numero total de * presta��es * * [UC0482]Emitir 2� Via de Conta * * [SB0013] Gerar Linhas dos D�bitos Cobrados * * @author Vivianne Sousa * @date 16/05/2007 * * * @param idConta * @return * @throws ErroRepositorioException */ public Collection<Object[]> pesquisarParmsDebitoAutomaticoHistorico( Integer idConta) throws ControladorException{ try { return repositorioFaturamento. pesquisarParmsDebitoAutomaticoHistoricoParcelasMaisJurosParcelamento(idConta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que retorna uma array de object do debito cobrado ordenado pelo * tipo de debito * * * [UC0348] Emitir Contas * * [SB0013] Gerar Linhas dos D�bitos Cobrados * * @author S�vio Luiz, Vivianne Sousa * @date 19/05/2006, 16/01/2007 * * * @param idConta * @return * @throws ErroRepositorioException */ public List pesquisarParmsDebitoCobradoPorTipo(Integer idConta) throws ControladorException{ try { return repositorioFaturamento. pesquisarParmsDebitoCobradoPorTipoSemParcelasEJurosParcelamento(idConta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que retorna uma array de object do debito cobrado ordenado pelo * tipo de debito * * * [UC0482]Emitir 2� Via de Conta * * [SB0013] Gerar Linhas dos D�bitos Cobrados * * @author Vivianne Sousa * @date 16/05/2007 * * * @param idConta * @return * @throws ErroRepositorioException */ public List pesquisarParmsDebitoCobradoHistoricoPorTipo(Integer idConta) throws ControladorException{ try { return repositorioFaturamento. pesquisarParmsDebitoCobradoHistoricoPorTipoSemParcelasEJurosParcelamento(idConta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0745] - Gerar Arquivo Texto para Faturamento * * [SB0002] - Obter dados dos servi�os de parcelamento * * @author Raphael Rossiter * @date 25/04/2008 * * @param conta * @return Object[] * @throws ErroRepositorioException */ public Object[] pesquisarDebitoCobradoDeParcelamento(Conta conta) throws ControladorException{ try { return repositorioFaturamento.pesquisarDebitoCobradoDeParcelamentoMaisJurosParcelamento(conta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * [UC0745] - Gerar Arquivo Texto para Faturamento * * [SB0002] - Obter dados dos servi�os de parcelamento * * @author Raphael Rossiter * @date 25/04/2008 * * @param conta * @return Collection * @throws ErroRepositorioException */ public Collection pesquisarDebitoCobradoNaoParcelamento(Conta conta) throws ControladorException{ try { return repositorioFaturamento.pesquisarDebitoCobradoNaoParcelamentoEJurosParcelamento(conta); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * Met�do respons�vel por emitir os txts das contas. * * [UC0348] Emitir Contas * * [SB0009] Obter Mensagem de Rateio de Consumo ou Consumo fixo de Esgoto * * @author S�vio Luiz * @date 19/05/2006 * * @param colecaoConta * @throws ControladorException */ public StringBuilder obterMensagemRateioConsumo( EmitirContaHelper emitirContaHelper, String consumoRateio, Object[] parmsMedicaoHistorico, Integer tipoMedicao) throws ControladorException { StringBuilder mensagemConsumo = new StringBuilder(); // caso o consumo de rateio seja diferente de vazio if (!consumoRateio.equals("") && !consumoRateio.equals("0")) { mensagemConsumo.append("CONSUMO DO RATEIO - "); mensagemConsumo.append(Util.completaStringComEspacoAEsquerda( consumoRateio, 6)); mensagemConsumo.append("M3"); // sen�o completa com espa�os em branco mensagemConsumo.append(Util.completaString("", 4)); } else { // sen�o completa com espa�os em branco mensagemConsumo.append(Util.completaString("", 32)); } return mensagemConsumo; } /** * Met�do respons�vel por emitir os txts das contas. * * [UC0348] Emitir Contas * * [SB0009] Obter Mensagem de Rateio de Consumo ou Consumo fixo de Esgoto * * @author Vivianne Sousa * @date 13/11/2007 * * @param colecaoConta * @throws ControladorException */ public StringBuilder obterMensagemRateioConsumoFichaCompensacao( EmitirContaHelper emitirContaHelper, String consumoRateio, Object[] parmsMedicaoHistorico, Integer tipoMedicao) throws ControladorException { StringBuilder mensagemConsumo = new StringBuilder(); // caso o consumo de rateio seja diferente de vazio if (!consumoRateio.equals("") && !consumoRateio.equals("0")) { mensagemConsumo.append("CONSUMO DO RATEIO - "); mensagemConsumo.append(Util.completaStringComEspacoAEsquerda(consumoRateio, 6)); mensagemConsumo.append("M3"); // sen�o completa com espa�os em branco mensagemConsumo.append(Util.completaString("", 3)); } else { // sen�o completa com espa�os em branco mensagemConsumo.append(Util.completaString("", 31)); } return mensagemConsumo; } /** * [UC0811] Processar Requisi��es do Dispositivo M�vel Impressao Simultanea. * * M�todo criado para evitar o if "compesa" ou if "caern". Para todas as * empresas, o pr�ximo arquivo do leiturista � disponibilizado assim que o * arquivo anterior � finalizado. Apenas na compesa, n�o permite. * * @author Bruno Barros * @date 05/10/2010 * * @return * @throws ControladorException */ public boolean liberaProximoArquivoImpressaoSimultaneaOnLine() throws ControladorException{ return false; } }