package gcom.relatorio.financeiro; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.relatorio.RelatorioVazioException; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaException; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.agendadortarefas.AgendadorTarefas; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; /** * [UC0726] Gerar Relat�rio das Contas Baixadas Contabilmente * * @author Vivianne Sousa * @data 08/04/2008 */ public class RelatorioContasBaixadasContabilmente extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioContasBaixadasContabilmente(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_CONTAS_BAIXADAS_CONTABILMENTE); } @Deprecated public RelatorioContasBaixadasContabilmente() { super(null, ""); } public Collection<RelatorioContasBaixadasContabilmenteBean> inicializarBeanRelatorio( Integer referenciaInicial, Integer referenciaFinal,Short periodicidade)throws ControladorException{ Collection<RelatorioContasBaixadasContabilmenteBean> colecaoBean = new ArrayList(); BigDecimal valorTotalFaixaUm = BigDecimal.ZERO; BigDecimal valorTotalFaixaDois = BigDecimal.ZERO; BigDecimal valorTotalFaixaTres = BigDecimal.ZERO; BigDecimal valorTotal = BigDecimal.ZERO; //Preencher valor Setor Um Map faixaUmSetor = Fachada.getInstancia().consultarSomatorioValorContasBaixadasContabilmenteFaixa( referenciaInicial , referenciaFinal, ConstantesSistema.FAIXA_1 , periodicidade); valorTotalFaixaUm = (BigDecimal)faixaUmSetor.get("somatorio"); //Preencher valor Setor Dois Map faixaDoisSetor = Fachada.getInstancia().consultarSomatorioValorContasBaixadasContabilmenteFaixa( referenciaInicial , referenciaFinal, ConstantesSistema.FAIXA_2 , periodicidade); valorTotalFaixaDois = (BigDecimal)faixaDoisSetor.get("somatorio"); //Preencher valor Setor Tres Map faixaTresSetor = Fachada.getInstancia().consultarSomatorioValorContasBaixadasContabilmenteFaixa( referenciaInicial , referenciaFinal, ConstantesSistema.FAIXA_3 , periodicidade); valorTotalFaixaTres = (BigDecimal)faixaTresSetor.get("somatorio"); valorTotal = valorTotal.add(valorTotalFaixaUm).add(valorTotalFaixaDois).add(valorTotalFaixaTres); RelatorioContasBaixadasContabilmenteBean bean = new RelatorioContasBaixadasContabilmenteBean( valorTotalFaixaUm, valorTotalFaixaDois, valorTotalFaixaTres, valorTotal); colecaoBean.add(bean); return colecaoBean; } /** * M�todo que executa a tarefa * * @return Object */ public Object executar() throws TarefaException { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ Short tipo = (Short)getParametro("tipo"); Short periodicidade = (Short)getParametro("periodicidade"); Integer referenciaInicial = (Integer) getParametro("referenciaInicial"); Integer referenciaFinal = (Integer) getParametro("referenciaFinal"); Integer tipoRelatorio = TarefaRelatorio.TIPO_PDF; String referenciaIni = Util.formatarAnoMesParaMesAno(referenciaInicial); String referenciaFin = Util.formatarAnoMesParaMesAno(referenciaFinal); String tipoDeRelatorio = ""; if (tipo == 1){ tipoDeRelatorio = "Anal�tico"; } else if (tipo == 2){ tipoDeRelatorio = "Sint�tico"; } String periodicidadeParametros = ""; if (periodicidade == 1){ periodicidadeParametros = "Mensal"; } else if (periodicidade == 2){ periodicidadeParametros = "Acumulado"; } // valor de retorno byte[] retorno = null; // Par�metros do relat�rio Map parametros = new HashMap(); Fachada fachada = Fachada.getInstancia(); Collection<RelatorioContasBaixadasContabilmenteBean> colecaoBean = null; try { colecaoBean = this.inicializarBeanRelatorio( referenciaInicial, referenciaFinal, periodicidade); } catch (ControladorException e1) { e1.printStackTrace(); } if (colecaoBean == null || colecaoBean.isEmpty()) { // N�o existem dados para a exibi��o do relat�rio. throw new RelatorioVazioException("atencao.relatorio.vazio"); } SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); parametros.put("periodicidade", periodicidadeParametros); if (periodicidade != 2){ parametros.put("referenciaInicial", referenciaIni); } parametros.put("referencialFinal", referenciaFin); parametros.put("tipo", tipoDeRelatorio); parametros.put("relatorio", "R0726"); RelatorioDataSource ds = new RelatorioDataSource((List) colecaoBean); retorno = this.gerarRelatorio( ConstantesRelatorios.RELATORIO_CONTAS_BAIXADAS_CONTABILMENTE, parametros, ds, tipoRelatorio); // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.CONTAS_BAIXADAS_CONTABILMENTE, idFuncionalidadeIniciada); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException("Erro ao gravar relat�rio no sistema", e); } // ------------------------------------ // retorna o relat�rio gerado return retorno; //return null; } @Override public int calcularTotalRegistrosRelatorio() { return 1; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioContasBaixadasContabilmente", this); } }