Java tutorial
/*** Copyright (c) 2012 - 2020 Hrcules S. S. Jos Este arquivo parte do programa Oramento Domstico. Oramento Domstico um software livre; voc pode redistribui-lo e/ou modific-lo dentro dos termos da Licena Pblica Geral Menor GNU como publicada pela Fundao do Software Livre (FSF); na verso 2.1 da Licena. Este programa distribudo na esperana que possa ser til, mas SEM NENHUMA GARANTIA; sem uma garantia implcita de ADEQUAO a qualquer MERCADO ou APLICAO EM PARTICULAR. Veja a Licena Pblica Geral Menor GNU em portugus para maiores detalhes. Voc deve ter recebido uma cpia da Licena Pblica Geral Menor GNU sob o nome de "LICENSE.TXT" junto com este programa, se no, acesse o site do projeto no endereco https://github.com/herculeshssj/orcamento ou escreva para a Fundao do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Para mais informaes sobre o programa Oramento Domstico e seu autor entre em contato pelo e-mail herculeshssj@outlook.com, ou ainda escreva para Hrcules S. S. Jos, Av. Ministro Lafaeyte de Andrade, 1683 - Bl. 3 Apt 404, Marco II - Nova Iguau, RJ, Brasil. ***/ package br.com.hslife.orcamento.controller; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.primefaces.event.FileUploadEvent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import br.com.hslife.orcamento.entity.Arquivo; import br.com.hslife.orcamento.entity.Categoria; import br.com.hslife.orcamento.entity.Conta; import br.com.hslife.orcamento.entity.FaturaCartao; import br.com.hslife.orcamento.entity.Favorecido; import br.com.hslife.orcamento.entity.FechamentoPeriodo; import br.com.hslife.orcamento.entity.LancamentoConta; import br.com.hslife.orcamento.entity.LancamentoImportado; import br.com.hslife.orcamento.entity.LancamentoPeriodico; import br.com.hslife.orcamento.entity.MeioPagamento; import br.com.hslife.orcamento.entity.Moeda; import br.com.hslife.orcamento.enumeration.Container; import br.com.hslife.orcamento.enumeration.OperacaoConta; import br.com.hslife.orcamento.enumeration.StatusLancamento; import br.com.hslife.orcamento.enumeration.StatusLancamentoConta; import br.com.hslife.orcamento.enumeration.TipoCategoria; import br.com.hslife.orcamento.enumeration.TipoConta; import br.com.hslife.orcamento.enumeration.TipoLancamento; import br.com.hslife.orcamento.enumeration.TipoLancamentoPeriodico; import br.com.hslife.orcamento.exception.BusinessException; import br.com.hslife.orcamento.exception.ValidationException; import br.com.hslife.orcamento.facade.ICategoria; import br.com.hslife.orcamento.facade.IConta; import br.com.hslife.orcamento.facade.IFaturaCartao; import br.com.hslife.orcamento.facade.IFavorecido; import br.com.hslife.orcamento.facade.IFechamentoPeriodo; import br.com.hslife.orcamento.facade.IImportacaoLancamento; import br.com.hslife.orcamento.facade.ILancamentoConta; import br.com.hslife.orcamento.facade.ILancamentoPeriodico; import br.com.hslife.orcamento.facade.IMeioPagamento; import br.com.hslife.orcamento.facade.IMoeda; import br.com.hslife.orcamento.model.CriterioBuscaLancamentoConta; import br.com.hslife.orcamento.util.DetalheFaturaComparator; import br.com.hslife.orcamento.util.LancamentoContaComparator; import br.com.hslife.orcamento.util.LancamentoContaUtil; import br.com.hslife.orcamento.util.Util; @Component("lancamentoContaMB") @Scope("session") public class LancamentoContaController extends AbstractCRUDController<LancamentoConta> { /** * */ private static final long serialVersionUID = -4809986079850307573L; @Autowired private ILancamentoConta service; @Autowired private IConta contaService; @Autowired private ICategoria categoriaService; @Autowired private IFavorecido favorecidoService; @Autowired private IMeioPagamento meioPagamentoService; @Autowired private IMoeda moedaService; @Autowired private IFaturaCartao faturaCartaoService; @Autowired private ILancamentoPeriodico lancamentoPeriodicoService; @Autowired private MovimentacaoLancamentoController movimentacaoLancamentoMB; @Autowired private ImportacaoLancamentoController importacaoLancamentoMB; @Autowired private IImportacaoLancamento importacaoLancamentoService; @Autowired private IFechamentoPeriodo fechamentoPeriodoService; private CriterioBuscaLancamentoConta criterioBusca = new CriterioBuscaLancamentoConta(); private TipoCategoria tipoCategoriaSelecionada; private boolean selecionarTodosLancamentos; private FechamentoPeriodo fechamentoPeriodo; private FaturaCartao faturaCartao; private Date dataFechamento; private String mesAno; private List<LancamentoPeriodico> lancamentosPeriodicos = new ArrayList<>(); public LancamentoContaController() { super(new LancamentoConta()); moduleTitle = "Lanamentos da Conta / Carto"; } @Override protected void initializeEntity() { entity = new LancamentoConta(); if (listEntity == null) listEntity = new ArrayList<>(); else listEntity.clear(); selecionarTodosLancamentos = false; dataFechamento = null; } @Override public void find() { try { if (criterioBusca.getConta() == null) { warnMessage("Informe a conta!"); } else if (criterioBusca.quantCriteriosDefinidos() == 1) { listEntity.clear(); warnMessage("Define melhor sua busca!"); } else { criterioBusca.setLimiteResultado(getOpcoesSistema().getLimiteQuantidadeRegistros()); listEntity = getService().buscarPorCriterioBusca(criterioBusca); } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } } public void findByPeriodo() { try { if (criterioBusca.getConta() == null) { warnMessage("Informe a conta!"); return; } criterioBusca.limparCriterios(); // Busca o fechamento do perodo anterior FechamentoPeriodo fechamentoAnterior; if (fechamentoPeriodo != null) fechamentoAnterior = fechamentoPeriodoService.buscarFechamentoPeriodoAnterior(fechamentoPeriodo); else fechamentoAnterior = fechamentoPeriodoService.buscarUltimoFechamentoConta(criterioBusca.getConta()); // Determina a data de incio do perodo if (fechamentoAnterior == null) { criterioBusca.setDataInicio(criterioBusca.getConta().getDataAbertura()); criterioBusca.setDataFim(new Date()); } else { Calendar temp = Calendar.getInstance(); temp.setTime(fechamentoAnterior.getData()); temp.add(Calendar.DAY_OF_YEAR, 1); criterioBusca.setDataInicio(temp.getTime()); } // Determina a data de fim do perodo if (fechamentoPeriodo == null) { criterioBusca.setDataFim(new Date()); } else { criterioBusca.setDataFim(fechamentoPeriodo.getData()); } // Correo do problema da dataIncio ser maior que dataFim if (criterioBusca.getDataInicio().after(criterioBusca.getDataFim())) { criterioBusca.setDataFim(null); } criterioBusca.setLimiteResultado(getOpcoesSistema().getLimiteQuantidadeRegistros()); listEntity = getService().buscarPorCriterioBusca(criterioBusca); } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } } public void findByFatura() { try { if (criterioBusca.getConta() == null) { warnMessage("Informe a conta!"); return; } criterioBusca.limparCriterios(); criterioBusca.setDataInicio(null); criterioBusca.setDataFim(null); if (faturaCartao != null) { // Mostra os lanamentos que atualmente esto vinculados na fatura selecionada listEntity = new ArrayList<>(); FaturaCartao fatura = faturaCartaoService.buscarPorID(faturaCartao.getId()); listEntity.addAll(fatura.getDetalheFatura()); listEntity.sort(new DetalheFaturaComparator()); if (listEntity.size() > 0) { criterioBusca.setDataInicio(listEntity.get(0).getDataPagamento()); criterioBusca.setDataFim(listEntity.get(listEntity.size() - 1).getDataPagamento()); } } else { // Mostra todos os lanamentos que no esto vinculados a uma fatura criterioBusca.setStatusLancamentoConta(new StatusLancamentoConta[] { StatusLancamentoConta.AGENDADO, StatusLancamentoConta.REGISTRADO }); criterioBusca.setLimiteResultado(getOpcoesSistema().getLimiteQuantidadeRegistros()); listEntity = getService().buscarPorCriterioBusca(criterioBusca); if (listEntity != null && listEntity.size() > 0) { criterioBusca.setDataInicio(listEntity.get(0).getDataPagamento()); criterioBusca.setDataFim(listEntity.get(listEntity.size() - 1).getDataPagamento()); } } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } } public void findByPeriodoCartao() { if (criterioBusca.getConta() == null) { warnMessage("Informe a conta!"); return; } try { if (mesAno == null || mesAno.isEmpty()) { // Preguia... mesAno = (Calendar.getInstance().get(Calendar.MONTH) + 1) + "/" + Calendar.getInstance().get(Calendar.YEAR); } String[] dataParticionada = mesAno.split("/"); criterioBusca.setDataInicio(Util.primeiroDiaMes(Integer.valueOf(dataParticionada[0]) - 1, Integer.valueOf(dataParticionada[1]))); criterioBusca.setDataFim(Util.ultimoDiaMes(Integer.valueOf(dataParticionada[0]) - 1, Integer.valueOf(dataParticionada[1]))); criterioBusca.setLimiteResultado(getOpcoesSistema().getLimiteQuantidadeRegistros()); listEntity = getService().buscarPorCriterioBusca(criterioBusca); } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } } @Override public String search() { find(); return super.search(); } @Override public String create() { entity.setTipoLancamento(TipoLancamento.DESPESA); tipoCategoriaSelecionada = TipoCategoria.DEBITO; entity.setConta(criterioBusca.getConta()); this.getListaCategoria(); return super.create(); } @Override public String edit() { // Evita problemas com definio de IDs invlidos // vindos de outros mdulos if (idEntity == null || idEntity <= 0) { warnMessage("Lanamento informado invlido!"); return goToListPage; } String goToPage = super.edit(); if (goToPage.equals(goToFormPage)) { atualizaComboCategorias(); } return goToPage; } public void carregarArquivo(FileUploadEvent event) { if (event.getFile() != null) { if (entity.getArquivo() == null) entity.setArquivo(new Arquivo()); entity.getArquivo().setDados(event.getFile().getContents()); entity.getArquivo().setNomeArquivo(event.getFile().getFileName().replace(" ", ".")); entity.getArquivo().setContentType(event.getFile().getContentType()); entity.getArquivo().setTamanho(event.getFile().getSize()); entity.getArquivo().setContainer(Container.LANCAMENTOCONTA); entity.getArquivo().setUsuario(getUsuarioLogado()); } } public void baixarArquivo() { if (entity.getArquivo() == null || entity.getArquivo().getDados() == null || entity.getArquivo().getDados().length == 0) { warnMessage("Nenhum arquivo adicionado!"); } else { HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); try { response.setContentType(entity.getArquivo().getContentType()); response.setHeader("Content-Disposition", "attachment; filename=" + entity.getArquivo().getNomeArquivo()); response.setContentLength(entity.getArquivo().getDados().length); ServletOutputStream output = response.getOutputStream(); output.write(entity.getArquivo().getDados(), 0, entity.getArquivo().getDados().length); FacesContext.getCurrentInstance().responseComplete(); } catch (Exception e) { errorMessage(e.getMessage()); } } } public void excluirArquivo() { if (entity.getArquivo() == null || entity.getArquivo().getDados() == null || entity.getArquivo().getDados().length == 0) { warnMessage("Nenhum arquivo adicionado!"); } else { entity.setArquivo(null); infoMessage("Arquivo excludo! Salve para confirmar as alteraes."); } } public void atualizaComboLancamentosImportado() { this.getListaLancamentoImportado(); } public void selecionarTodos() { if (listEntity != null && listEntity.size() > 0) for (LancamentoConta l : listEntity) { if (selecionarTodosLancamentos) { l.setSelecionado(true); } else { l.setSelecionado(false); } } } private List<LancamentoConta> removerNaoSelecionados(List<LancamentoConta> lancamentos) { for (Iterator<LancamentoConta> i = lancamentos.iterator(); i.hasNext();) { if (!i.next().isSelecionado()) i.remove(); } return lancamentos; } @SuppressWarnings("resource") public void exportarLancamentos() { if (listEntity == null || listEntity.isEmpty()) { warnMessage("Listagem vazio. Nada a exportar."); } try { HSSFWorkbook excel = new HSSFWorkbook(); HSSFSheet planilha = excel.createSheet("lancamentoConta"); HSSFRow linha = planilha.createRow(0); HSSFCell celula = linha.createCell(0); celula.setCellValue("Data"); celula = linha.createCell(1); celula.setCellValue("Histrico"); celula = linha.createCell(2); celula.setCellValue("Valor"); int linhaIndex = 1; for (LancamentoConta l : listEntity) { linha = planilha.createRow(linhaIndex); celula = linha.createCell(0); celula.setCellValue(Util.formataDataHora(l.getDataPagamento(), Util.DATA)); celula = linha.createCell(1); celula.setCellValue(l.getDescricao()); celula = linha.createCell(2); celula.setCellValue(l.getValorPago()); linhaIndex++; } HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=lancamentoConta.xls"); response.setContentLength(excel.getBytes().length); ServletOutputStream output = response.getOutputStream(); output.write(excel.getBytes(), 0, excel.getBytes().length); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException e) { errorMessage(e.getMessage()); } } public String importarLancamentos() { // Verifica se a conta seleciona est ativa if (!criterioBusca.getConta().isAtivo()) { warnMessage("A conta encontra-se inativa!"); return ""; } importacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); importacaoLancamentoMB.setGoToListPage(goToListPage); return importacaoLancamentoMB.create(); } public String fecharPeriodoView() { // Verifica se a conta seleciona est ativa if (!criterioBusca.getConta().isAtivo()) { warnMessage("A conta encontra-se inativa!"); return ""; } if (fechamentoPeriodo != null && fechamentoPeriodo.getOperacao().equals(OperacaoConta.FECHAMENTO)) { warnMessage("Perodo selecionado encontra-se fechado."); return ""; } try { actionTitle = " - Fechar perodo"; lancamentosPeriodicos = lancamentoPeriodicoService.buscarPorTipoLancamentoContaEStatusLancamento( TipoLancamentoPeriodico.FIXO, criterioBusca.getConta(), StatusLancamento.ATIVO); for (LancamentoPeriodico lp : lancamentosPeriodicos) { lp.setSelecionado(true); } if (fechamentoPeriodo != null && fechamentoPeriodo.getOperacao().equals(OperacaoConta.REABERTURA)) { dataFechamento = fechamentoPeriodo.getData(); } return "/pages/LancamentoConta/fecharPeriodo"; } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String fecharPeriodo() { try { if (dataFechamento == null) { warnMessage("Informe a data de fechamento!"); return ""; } // Remove os lanamentos no selecionados for (Iterator<LancamentoPeriodico> i = lancamentosPeriodicos.iterator(); i.hasNext();) { if (!i.next().isSelecionado()) { i.remove(); } } if (fechamentoPeriodo != null) fechamentoPeriodoService.fecharPeriodo(fechamentoPeriodo, new ArrayList<>(lancamentosPeriodicos)); else fechamentoPeriodoService.fecharPeriodo(dataFechamento, criterioBusca.getConta(), new ArrayList<>(lancamentosPeriodicos)); infoMessage("Perodo fechado com sucesso."); } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return list(); } public String reabrirPeriodoView() { // Verifica se a conta seleciona est ativa if (!criterioBusca.getConta().isAtivo()) { warnMessage("A conta encontra-se inativa!"); return ""; } if (fechamentoPeriodo == null) { warnMessage("Selecione um fechamento de perodo!"); return ""; } if (fechamentoPeriodo.getOperacao().equals(OperacaoConta.REABERTURA)) { warnMessage("O perodo selecionado j foi reaberto."); return ""; } try { fechamentoPeriodo = fechamentoPeriodoService.buscarFechamentoPorID(fechamentoPeriodo.getId()); Collections.sort(fechamentoPeriodo.getLancamentos(), new LancamentoContaComparator()); actionTitle = " - Reabrir perodo"; return "/pages/LancamentoConta/reabrirPeriodo"; } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return ""; } public String reabrirPeriodo() { try { fechamentoPeriodoService.reabrirPeriodo(fechamentoPeriodo); infoMessage("Perodo reaberto com sucesso."); } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return list(); } public String mover() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); initializeEntity(); return movimentacaoLancamentoMB.moverView(); } public String duplicar() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); initializeEntity(); return movimentacaoLancamentoMB.duplicarView(); } public String excluir() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.excluirView(); } public String alterarPropriedades() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.alterarPropriedadesView(); } public String mesclar() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.mesclarView(); } public String dividir() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.dividirView(); } public String detalhar() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.detalharView(); } public String transferir() { initializeEntity(); return movimentacaoLancamentoMB.transferirView(); } public String vinculos() { if (listEntity == null) { warnMessage("Nenhum lanamento selecionado!"); return ""; } movimentacaoLancamentoMB .setLancamentosSelecionados(this.removerNaoSelecionados(new ArrayList<>(listEntity))); movimentacaoLancamentoMB.setContaSelecionada(criterioBusca.getConta()); initializeEntity(); return movimentacaoLancamentoMB.removerVinculosView(); } public List<Conta> getListaConta() { List<Conta> contas = new ArrayList<>(); try { if (getOpcoesSistema().getExibirContasInativas()) { contas = contaService.buscarDescricaoOuTipoContaOuAtivoPorUsuario("", new TipoConta[] { TipoConta.CORRENTE, TipoConta.POUPANCA, TipoConta.OUTROS, TipoConta.CARTAO }, getUsuarioLogado(), null); } else { contas = contaService.buscarDescricaoOuTipoContaOuAtivoPorUsuario("", new TipoConta[] { TipoConta.CORRENTE, TipoConta.POUPANCA, TipoConta.OUTROS, TipoConta.CARTAO }, getUsuarioLogado(), true); } if (contas != null && !contas.isEmpty() && criterioBusca.getConta() == null) { criterioBusca.setConta(contas.get(0)); } return contas; } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return new ArrayList<Conta>(); } public List<Conta> getListaContaAtivo() { try { return contaService.buscarDescricaoOuTipoContaOuAtivoPorUsuario("", new TipoConta[] { TipoConta.CORRENTE, TipoConta.POUPANCA, TipoConta.OUTROS, TipoConta.CARTAO }, getUsuarioLogado(), true); } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return new ArrayList<Conta>(); } public List<SelectItem> getListaLancamentoImportado() { List<SelectItem> listagem = new ArrayList<SelectItem>(); try { for (LancamentoImportado importado : importacaoLancamentoService .buscarLancamentoImportadoPorConta(entity.getConta())) { listagem.add(new SelectItem(importado, Util.formataDataHora(importado.getData(), Util.DATA) + " - " + importado.getMoeda() + " " + importado.getValor() + " - " + importado.getHistorico())); } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return listagem; } public String getTotalCreditos() { double total = 0; if (listEntity != null) { for (LancamentoConta lancamento : listEntity) { if (lancamento.getTipoLancamento().equals(TipoLancamento.RECEITA)) if (lancamento.getTaxaConversao() == null) total += lancamento.getValorPago(); else total += lancamento.getTaxaConversao().getValorMoedaDestino(); } } return this.retornaSimboloMonetario() + " " + new DecimalFormat("#,##0.00").format(Util.arredondar(total)); } public String getTotalDebitos() { double total = 0; if (listEntity != null) { for (LancamentoConta lancamento : listEntity) { if (lancamento.getTipoLancamento().equals(TipoLancamento.DESPESA)) if (lancamento.getTaxaConversao() == null) total += lancamento.getValorPago(); else total += lancamento.getTaxaConversao().getValorMoedaDestino(); } } return this.retornaSimboloMonetario() + " " + new DecimalFormat("#,##0.00").format(Util.arredondar(total)); } public String getSaldoTotal() { double total = LancamentoContaUtil.calcularSaldoLancamentosComConversao(listEntity); return this.retornaSimboloMonetario() + " " + new DecimalFormat("#,##0.00").format(Util.arredondar(total)); } private String retornaSimboloMonetario() { // Verifica se a conta j foi selecionada. Se no, usa a moeda padro. String simboloMonetario = ""; if (criterioBusca.getConta() == null) { simboloMonetario = this.getMoedaPadrao().getSimboloMonetario(); } else { simboloMonetario = this.criterioBusca.getConta().getMoeda().getSimboloMonetario(); } return simboloMonetario; } public void atualizarListaPesquisaAgrupamento() { this.getListaPesquisaAgrupamento(); } public List<FechamentoPeriodo> getListaFechamentoPeriodo() { List<FechamentoPeriodo> fechamentos = new ArrayList<>(); try { if (criterioBusca.getConta() != null) { for (FechamentoPeriodo fechamento : fechamentoPeriodoService .buscarTodosFechamentoPorConta(criterioBusca.getConta())) { fechamentos.add(fechamento); if (fechamentos.size() >= getOpcoesSistema().getLimiteQuantidadeFechamentos()) { break; } } } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return fechamentos; } public List<FaturaCartao> getListaFaturaCartao() { List<FaturaCartao> faturas = new ArrayList<>(); try { if (criterioBusca.getConta() != null) { for (FaturaCartao fatura : faturaCartaoService .buscarTodosPorCartaoCredito(criterioBusca.getConta())) { faturas.add(fatura); if (faturas.size() >= getOpcoesSistema().getLimiteQuantidadeFechamentos()) { break; } } } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return faturas; } public List<String> getListaMesAno() { List<String> mesAno = new LinkedList<>(); Calendar data = Calendar.getInstance(); for (int i = 0; i < 12; i++) { data.add(Calendar.MONTH, -1); String temp = data.get(Calendar.MONTH) + 1 + "/" + data.get(Calendar.YEAR); mesAno.add(temp); } return mesAno; } public void atualizaListaFechamentoPeriodo() { this.getListaFechamentoPeriodo(); } public List<SelectItem> getListaPesquisaAgrupamento() { List<SelectItem> resultado = new ArrayList<SelectItem>(); if (criterioBusca.getCadastro() != null) { switch (criterioBusca.getCadastro()) { case CATEGORIA: for (Categoria c : this.getListaCategoriaSemTipoCategoria()) { resultado.add(new SelectItem(c.getId(), c.getTipoCategoria() + " - " + c.getDescricao())); } break; case FAVORECIDO: for (Favorecido f : this.getListaFavorecido()) { resultado.add(new SelectItem(f.getId(), f.getNome())); } break; case MEIOPAGAMENTO: for (MeioPagamento m : this.getListaMeioPagamento()) { resultado.add(new SelectItem(m.getId(), m.getDescricao())); } break; case MOEDA: for (Moeda m : this.getListaMoeda()) { resultado.add(new SelectItem(m.getId(), m.getLabel())); } break; default: } } return resultado; } public void atualizaComboCategorias() { if (entity.getTipoLancamento() != null) { if (entity.getTipoLancamento().equals(TipoLancamento.RECEITA)) { tipoCategoriaSelecionada = TipoCategoria.CREDITO; } else { tipoCategoriaSelecionada = TipoCategoria.DEBITO; } } } public List<Categoria> getListaCategoria() { try { if (tipoCategoriaSelecionada != null) { List<Categoria> resultado = categoriaService .buscarAtivosPorTipoCategoriaEUsuario(tipoCategoriaSelecionada, getUsuarioLogado()); // Lgica para incluir a categoria inativa da entidade na combo if (resultado != null && entity.getCategoria() != null) { if (!resultado.contains(entity.getCategoria())) { entity.getCategoria().setAtivo(true); resultado.add(entity.getCategoria()); } } return resultado; } } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return new ArrayList<Categoria>(); } public List<Categoria> getListaCategoriaSemTipoCategoria() { try { List<Categoria> resultado = categoriaService.buscarAtivosPorUsuario(getUsuarioLogado()); // Lgica para incluir a categoria inativa da entidade na combo if (resultado != null && entity.getCategoria() != null) { if (!resultado.contains(entity.getCategoria())) { entity.getCategoria().setAtivo(true); resultado.add(entity.getCategoria()); } } return resultado; } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return new ArrayList<Categoria>(); } public List<Favorecido> getListaFavorecido() { try { List<Favorecido> resultado = favorecidoService.buscarAtivosPorUsuario(getUsuarioLogado()); // Lgica para incluir o favorecido inativo da entidade na combo if (resultado != null && entity.getFavorecido() != null) { if (!resultado.contains(entity.getFavorecido())) { entity.getFavorecido().setAtivo(true); resultado.add(entity.getFavorecido()); } } return resultado; } catch (ValidationException | BusinessException be) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, be.getMessage(), null)); } return new ArrayList<>(); } public List<MeioPagamento> getListaMeioPagamento() { try { List<MeioPagamento> resultado = meioPagamentoService.buscarAtivosPorUsuario(getUsuarioLogado()); // Lgica para incluir o meio de pagamento inativo da entidade na combo if (resultado != null && entity.getMeioPagamento() != null) { if (!resultado.contains(entity.getMeioPagamento())) { entity.getMeioPagamento().setAtivo(true); resultado.add(entity.getMeioPagamento()); } } return resultado; } catch (ValidationException | BusinessException be) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, be.getMessage(), null)); } return new ArrayList<>(); } public List<Moeda> getListaMoeda() { try { List<Moeda> resultado = moedaService.buscarAtivosPorUsuario(getUsuarioLogado()); // Lgica para incluir o banco inativo da entidade na combo if (resultado != null && entity.getMoeda() != null) { if (!resultado.contains(entity.getMoeda())) { entity.getMoeda().setAtivo(true); resultado.add(entity.getMoeda()); } } return resultado; } catch (ValidationException | BusinessException be) { errorMessage(be.getMessage()); } return new ArrayList<>(); } public ILancamentoConta getService() { return service; } public void setService(ILancamentoConta service) { this.service = service; } public IConta getContaService() { return contaService; } public void setContaService(IConta contaService) { this.contaService = contaService; } public ICategoria getCategoriaService() { return categoriaService; } public void setCategoriaService(ICategoria categoriaService) { this.categoriaService = categoriaService; } public IFavorecido getFavorecidoService() { return favorecidoService; } public void setFavorecidoService(IFavorecido favorecidoService) { this.favorecidoService = favorecidoService; } public IMeioPagamento getMeioPagamentoService() { return meioPagamentoService; } public void setMeioPagamentoService(IMeioPagamento meioPagamentoService) { this.meioPagamentoService = meioPagamentoService; } public MovimentacaoLancamentoController getMovimentacaoLancamentoMB() { return movimentacaoLancamentoMB; } public void setMovimentacaoLancamentoMB(MovimentacaoLancamentoController movimentacaoLancamentoMB) { this.movimentacaoLancamentoMB = movimentacaoLancamentoMB; } public TipoCategoria getTipoCategoriaSelecionada() { return tipoCategoriaSelecionada; } public void setTipoCategoriaSelecionada(TipoCategoria tipoCategoriaSelecionada) { this.tipoCategoriaSelecionada = tipoCategoriaSelecionada; } public boolean isSelecionarTodosLancamentos() { return selecionarTodosLancamentos; } public void setSelecionarTodosLancamentos(boolean selecionarTodosLancamentos) { this.selecionarTodosLancamentos = selecionarTodosLancamentos; } public IMoeda getMoedaService() { return moedaService; } public void setMoedaService(IMoeda moedaService) { this.moedaService = moedaService; } public CriterioBuscaLancamentoConta getCriterioBusca() { return criterioBusca; } public void setCriterioBusca(CriterioBuscaLancamentoConta criterioBusca) { this.criterioBusca = criterioBusca; } public FechamentoPeriodo getFechamentoPeriodo() { return fechamentoPeriodo; } public void setFechamentoPeriodo(FechamentoPeriodo fechamentoPeriodo) { this.fechamentoPeriodo = fechamentoPeriodo; } public Date getDataFechamento() { return dataFechamento; } public void setDataFechamento(Date dataFechamento) { this.dataFechamento = dataFechamento; } public List<LancamentoPeriodico> getLancamentosPeriodicos() { return lancamentosPeriodicos; } public void setLancamentosPeriodicos(List<LancamentoPeriodico> lancamentosPeriodicos) { this.lancamentosPeriodicos = lancamentosPeriodicos; } public FaturaCartao getFaturaCartao() { return faturaCartao; } public void setFaturaCartao(FaturaCartao faturaCartao) { this.faturaCartao = faturaCartao; } public String getMesAno() { return mesAno; } public void setMesAno(String mesAno) { this.mesAno = mesAno; } }