Rev 402 | Rev 575 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 402 | Rev 439 | ||
|---|---|---|---|
| Line 8... | Line 8... | ||
| 8 | 8 | ||
| 9 | import br.com.ec.core.consulta.ParametrosConsulta; |
9 | import br.com.ec.core.consulta.ParametrosConsulta; |
| 10 | import br.com.ec.core.exception.NegocioException; |
10 | import br.com.ec.core.exception.NegocioException; |
| 11 | import br.com.ec.core.generic.AbstractService; |
11 | import br.com.ec.core.generic.AbstractService; |
| 12 | import br.com.ec.core.generic.GenericRepository; |
12 | import br.com.ec.core.generic.GenericRepository; |
| - | 13 | import br.com.ec.core.util.DataUtils; |
|
| 13 | import br.com.ec.core.util.VerificadorUtil; |
14 | import br.com.ec.core.util.VerificadorUtil; |
| 14 | import br.com.ec.core.validador.Validador; |
15 | import br.com.ec.core.validador.Validador; |
| 15 | import br.com.ec.domain.dto.FormaPagamentoDTO; |
16 | import br.com.ec.domain.dto.FormaPagamentoDTO; |
| 16 | import br.com.ec.domain.dto.ParcelaDTO; |
17 | import br.com.ec.domain.dto.ParcelaDTO; |
| - | 18 | import br.com.ec.domain.dto.VigenciaDTO; |
|
| 17 | import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO; |
19 | import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO; |
| - | 20 | import br.com.ec.domain.model.Conta; |
|
| 18 | import br.com.ec.domain.model.Parcela; |
21 | import br.com.ec.domain.model.Parcela; |
| - | 22 | import br.com.ec.domain.model.Vigencia; |
|
| - | 23 | import br.com.ec.domain.model.tipos.TipoFrequencia; |
|
| - | 24 | import br.com.ec.domain.service.ContaService; |
|
| 19 | import br.com.ec.domain.service.ParcelaService; |
25 | import br.com.ec.domain.service.ParcelaService; |
| - | 26 | import br.com.ec.domain.service.VigenciaService; |
|
| 20 | import br.com.ec.repository.ParcelaRepository; |
27 | import br.com.ec.repository.ParcelaRepository; |
| 21 | 28 | ||
| 22 | @Service |
29 | @Service |
| 23 | public class ParcelaServiceImpl extends AbstractService<Parcela> implements ParcelaService { |
30 | public class ParcelaServiceImpl extends AbstractService<Parcela> implements ParcelaService { |
| 24 | 31 | ||
| 25 | private ParcelaRepository parcelaRepository; |
32 | private ParcelaRepository parcelaRepository; |
| - | 33 | private ContaService contaService; |
|
| - | 34 | private VigenciaService vigenciaService; |
|
| - | 35 | ||
| 26 | /*
|
36 | /*
|
| 27 | private TaxaService taxaService;
|
37 | private TaxaService taxaService;
|
| 28 | private ContaService contaService;
|
- | |
| 29 | private CategoriaService categoriaService;
|
38 | private CategoriaService categoriaService;
|
| 30 | private ContaFormaPagamentoService contaFormaPagamentoService;
|
39 | private ContaFormaPagamentoService contaFormaPagamentoService;
|
| 31 | private VendaFormaPagamentoService vendaFormaPagamentoService;
|
40 | private VendaFormaPagamentoService vendaFormaPagamentoService;
|
| 32 | private VigenciaService vigenciaService;*/
|
- | |
| - | 41 | */
|
|
| 33 | 42 | ||
| 34 | @Autowired |
43 | @Autowired |
| 35 | public ParcelaServiceImpl(Validador validador, ParcelaRepository parcelaRepository/*, TaxaService taxaService, |
- | |
| 36 | ContaService contaService, CategoriaService categoriaService, ContaFormaPagamentoService contaFormaPagamentoService,
|
- | |
| 37 | VendaFormaPagamentoService vendaFormaPagamentoService, VigenciaService vigenciaService*/) { |
- | |
| - | 44 | public ParcelaServiceImpl(Validador validador, ParcelaRepository parcelaRepository, ContaService contaService, |
|
| - | 45 | VigenciaService vigenciaService/*, TaxaService taxaService,
|
|
| - | 46 | CategoriaService categoriaService, ContaFormaPagamentoService contaFormaPagamentoService,
|
|
| - | 47 | VendaFormaPagamentoService vendaFormaPagamentoService*/) { |
|
| 38 | super(validador); |
48 | super(validador); |
| 39 | this.parcelaRepository = parcelaRepository; |
49 | this.parcelaRepository = parcelaRepository; |
| - | 50 | this.contaService = contaService; |
|
| - | 51 | this.vigenciaService = vigenciaService; |
|
| 40 | /*
|
52 | /*
|
| 41 | this.taxaService = taxaService;
|
53 | this.taxaService = taxaService;
|
| 42 | this.contaService = contaService;
|
- | |
| 43 | this.contaFormaPagamentoService = contaFormaPagamentoService;
|
54 | this.contaFormaPagamentoService = contaFormaPagamentoService;
|
| 44 | this.vendaFormaPagamentoService = vendaFormaPagamentoService;
|
55 | this.vendaFormaPagamentoService = vendaFormaPagamentoService;
|
| 45 | this.categoriaService = categoriaService;
|
56 | this.categoriaService = categoriaService;
|
| 46 | this.vigenciaService = vigenciaService;
|
- | |
| 47 | */
|
57 | */
|
| 48 | }
|
58 | }
|
| 49 | 59 | ||
| 50 | @Override |
60 | @Override |
| 51 | protected GenericRepository<Parcela> getRepository() { |
61 | protected GenericRepository<Parcela> getRepository() { |
| 52 | return this.parcelaRepository; |
62 | return this.parcelaRepository; |
| - | 63 | }
|
|
| - | 64 | ||
| - | 65 | @Override |
|
| - | 66 | protected void regrasNegocioCadastrar(Parcela parcela) { |
|
| - | 67 | verificarParcela(parcela); |
|
| - | 68 | }
|
|
| - | 69 | ||
| - | 70 | @Override |
|
| - | 71 | protected void regrasNegocioAlterar(Parcela parcela) { |
|
| - | 72 | verificarParcela(parcela); |
|
| - | 73 | }
|
|
| - | 74 | ||
| - | 75 | private void verificarParcela(Parcela parcela) { |
|
| - | 76 | if (VerificadorUtil.estaNulo(parcela.getDataVencimento()) && VerificadorUtil.estaNulo(parcela.getDataPagamento())) { |
|
| - | 77 | throw new NegocioException("INFORME A DATA DE VENCIMENTO OU A DATA DE PAGAMENTO"); |
|
| - | 78 | }
|
|
| - | 79 | cadastrarContaCasoNaoTenhaSidoCadastrada(parcela.getConta()); |
|
| 53 | }
|
80 | }
|
| 54 | 81 | ||
| 55 | @Override |
82 | @Override |
| 56 | public List<ParcelaDTO> consultarParcelas(ParametrosConsultaParcelasDTO parametrosConsultaParcelasDTO) { |
83 | public List<ParcelaDTO> consultarParcelas(ParametrosConsultaParcelasDTO parametrosConsultaParcelasDTO) { |
| 57 | return parcelaRepository.consultarParcelas(parametrosConsultaParcelasDTO); |
84 | return parcelaRepository.consultarParcelas(parametrosConsultaParcelasDTO); |
| Line 95... | Line 122... | ||
| 95 | for (ParcelaDTO parcelaDTO : parcelas) { |
122 | for (ParcelaDTO parcelaDTO : parcelas) { |
| 96 | parcelaRepository.alterarObservacao(parcelaDTO.getSequencial(), parcelaDTO.getObservacao()); |
123 | parcelaRepository.alterarObservacao(parcelaDTO.getSequencial(), parcelaDTO.getObservacao()); |
| 97 | }
|
124 | }
|
| 98 | }
|
125 | }
|
| 99 | 126 | ||
| 100 | /*
|
- | |
| 101 | @Override
|
127 | @Override |
| 102 | protected void regrasNegocioCadastrar(Parcela parcela) {
|
- | |
| 103 | verificarParcela(parcela);
|
- | |
| - | 128 | public void efetuarPagamentoRecebimento(ParcelaDTO parcelaDTO, Date dataEfetuar) { |
|
| - | 129 | Parcela parcela = this.consultarPorId(new Parcela(parcelaDTO.getSequencial())); |
|
| - | 130 | if (VerificadorUtil.estaNulo(parcela.getDataPagamento())) { |
|
| - | 131 | parcela.setDataPagamento(dataEfetuar); |
|
| - | 132 | this.alterar(parcela); |
|
| - | 133 | cadastrarNovaParcelaPelaFrequencia(parcela); |
|
| - | 134 | }
|
|
| 104 | }
|
135 | }
|
| 105 |
|
136 | |
| 106 | @Override
|
- | |
| 107 | protected void regrasNegocioAlterar(Parcela parcela) {
|
- | |
| 108 | verificarParcela(parcela);
|
- | |
| - | 137 | private Conta cadastrarContaCasoNaoTenhaSidoCadastrada(Conta conta) { |
|
| - | 138 | if (VerificadorUtil.naoEstaNulo(conta)) { |
|
| - | 139 | if (VerificadorUtil.estaNulo(conta.getSequencial())) { |
|
| - | 140 | contaService.cadastrar(conta); |
|
| - | 141 | }
|
|
| - | 142 | }
|
|
| - | 143 | return conta; |
|
| 109 | }
|
144 | }
|
| 110 | - | ||
| 111 |
|
145 | |
| 112 | private void verificarParcela(Parcela parcela) {
|
- | |
| 113 | if (VerificadorUtil.estaNulo(parcela.getDataVencimento()) && VerificadorUtil.estaNulo(parcela.getDataPagamento())) {
|
- | |
| 114 | throw new NegocioException("INFORME A DATA DE VENCIMENTO OU A DATA DE PAGAMENTO");
|
- | |
| - | 146 | @Override |
|
| - | 147 | public void cadastrarNovaParcelaPelaFrequencia(Parcela parcela) { |
|
| - | 148 | if (VerificadorUtil.naoEstaNulo(parcela.getConta())) { |
|
| - | 149 | if (!this.verificarPossuiParcelaEmAberta(parcela.getConta().getSequencial(), parcela.getConta().getSequencialDaVenda())) { |
|
| - | 150 | if (!parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.UNICA.getValor())) { |
|
| - | 151 | Conta contaNova = new Conta(parcela.getConta()); |
|
| - | 152 | contaNova.setSequencial(null); |
|
| - | 153 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.MENSAL.getValor())) { |
|
| - | 154 | Vigencia proximaVigencia = vigenciaService.consultarProximaVigencia(parcela.getConta().getVigencia().getSequencial()); |
|
| - | 155 | contaNova.setVigencia(proximaVigencia); |
|
| - | 156 | }
|
|
| - | 157 | contaService.cadastrar(contaNova); |
|
| - | 158 | ||
| - | 159 | List<Parcela> parcelas = parcelaRepository.consultarParcelasDaConta(parcela.getConta().getSequencial()); |
|
| - | 160 | for (Parcela parcelaAnterior : parcelas) { |
|
| - | 161 | Parcela parcelaNova = new Parcela(parcelaAnterior); |
|
| - | 162 | parcelaNova.setConta(contaNova); |
|
| - | 163 | parcelaNova.setDataEmissao(DataUtils.getDataAtual()); |
|
| - | 164 | parcelaNova.provisionarNovaDataVencimentoPelaFrequencia(); |
|
| - | 165 | parcelaNova.setDataPagamento(null); |
|
| - | 166 | this.cadastrar(parcelaNova); |
|
| - | 167 | }
|
|
| - | 168 | // ContaGerenciadorDTO contaGerenciador = new ContaGerenciadorDTO();
|
|
| - | 169 | // contaGerenciador.setConta(contaAPagar);
|
|
| - | 170 | // return contaGerenciador;
|
|
| - | 171 | }
|
|
| - | 172 | }
|
|
| 115 | }
|
173 | }
|
| 116 | //TODO: VERIFICAR CADASTRO
|
- | |
| 117 | cadastrarContaCasoNaoTenhaSidoCadastrada(parcela.getConta());
|
- | |
| 118 | // cadastrarContaCasoNaoTenhaSidoCadastrada(parcela.getConta(), TipoConta.CONTA_A_PAGAR.getValor());
|
- | |
| 119 | // cadastrarContaCasoNaoTenhaSidoCadastrada(parcela.getConta(), TipoConta.CONTA_A_RECEBER.getValor());
|
- | |
| - | 174 | //return null;
|
|
| 120 | }
|
175 | }
|
| 121 |
|
176 | |
| - | 177 | @Override |
|
| - | 178 | public Boolean verificarPossuiParcelaEmAberta(Long sequencialConta, Long sequencialVenda) { |
|
| - | 179 | return parcelaRepository.verificarPossuiParcelaEmAberta(sequencialConta, sequencialVenda); |
|
| - | 180 | }
|
|
| - | 181 | ||
| - | 182 | /*
|
|
| 122 | @Override
|
183 | @Override
|
| 123 | public void cancelarParcela(Parcela parcela) {
|
184 | public void cancelarParcela(Parcela parcela) {
|
| 124 | parcela.setIndicadorAtivo(false);
|
185 | parcela.setIndicadorAtivo(false);
|
| 125 | this.alterar(parcela);
|
186 | this.alterar(parcela);
|
| 126 | cancelarContaSemParcelaAtiva(parcela);
|
187 | cancelarContaSemParcelaAtiva(parcela);
|
| Line 292... | Line 353... | ||
| 292 | if (vendaFormaPagamento.getFormaPagamento().formaPagamentoEhCredito()) {criarParcelaCredito(valorParcelaCalculado, taxa.getContaBancaria(), vendaFormaPagamento, conta);}
|
353 | if (vendaFormaPagamento.getFormaPagamento().formaPagamentoEhCredito()) {criarParcelaCredito(valorParcelaCalculado, taxa.getContaBancaria(), vendaFormaPagamento, conta);}
|
| 293 | }
|
354 | }
|
| 294 | return conta;
|
355 | return conta;
|
| 295 | }
|
356 | }
|
| 296 | throw new NegocioException("NENHUMA PARCELA FOI CRIADA");
|
357 | throw new NegocioException("NENHUMA PARCELA FOI CRIADA");
|
| 297 | }
|
- | |
| 298 |
|
- | |
| 299 | private Conta cadastrarContaCasoNaoTenhaSidoCadastrada(Conta conta) {
|
- | |
| 300 | if (VerificadorUtil.naoEstaNulo(conta)) {
|
- | |
| 301 | if (VerificadorUtil.estaNulo(conta.getSequencial())) {
|
- | |
| 302 | contaService.cadastrar(conta);
|
- | |
| 303 | }
|
- | |
| 304 | }
|
- | |
| 305 | return conta;
|
- | |
| 306 | }
|
358 | }
|
| 307 |
|
359 |
|
| 308 | private Conta criarParcelaDinheiro(VendaFormaPagamento vendaFormaPagamento, Conta contaAReceber) {
|
360 | private Conta criarParcelaDinheiro(VendaFormaPagamento vendaFormaPagamento, Conta contaAReceber) {
|
| 309 | cadastrarParcelas(vendaFormaPagamento, new ContaBancaria(ContaBancaria.getContaCaixa()), vendaFormaPagamento.getVenda().getDataVenda(), vendaFormaPagamento.getValorPagamento(), contaAReceber, "VALOR");
|
361 | cadastrarParcelas(vendaFormaPagamento, new ContaBancaria(ContaBancaria.getContaCaixa()), vendaFormaPagamento.getVenda().getDataVenda(), vendaFormaPagamento.getValorPagamento(), contaAReceber, "VALOR");
|
| 310 | return contaAReceber;
|
362 | return contaAReceber;
|
| Line 366... | Line 418... | ||
| 366 | }
|
418 | }
|
| 367 |
|
419 |
|
| 368 | @Override
|
420 | @Override
|
| 369 | public Boolean verificarPossuiParcela(Venda venda) {
|
421 | public Boolean verificarPossuiParcela(Venda venda) {
|
| 370 | return parcelaRepository.verificarPossuiParcela(venda);
|
422 | return parcelaRepository.verificarPossuiParcela(venda);
|
| 371 | }
|
- | |
| 372 |
|
- | |
| 373 | @Override
|
- | |
| 374 | public ContaGerenciadorDTO cadastrarNovaParcelaPelaFrequencia(Parcela parcela) {
|
- | |
| 375 | if (VerificadorUtil.naoEstaNulo(parcela.getConta())) {
|
- | |
| 376 | if (!this.verificarPossuiParcelaAbertaParaPagamento(parcela.getConta())) {
|
- | |
| 377 | if (!parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.UNICA.getValor())) {
|
- | |
| 378 | Conta contaAPagar = new Conta();
|
- | |
| 379 | contaAPagar.setCategoria(parcela.getConta().getCategoria());
|
- | |
| 380 | contaAPagar.setPessoa(parcela.getConta().getPessoa());
|
- | |
| 381 | contaAPagar.setObservacao(parcela.getConta().getObservacao());
|
- | |
| 382 | contaAPagar.setTipoFrequencia(parcela.getConta().getTipoFrequencia());
|
- | |
| 383 | contaAPagar.setIndicadorAtivo(true);
|
- | |
| 384 | contaAPagar.setTipoConta(TipoConta.CONTA_A_PAGAR.getValor());
|
- | |
| 385 | contaAPagar.setLoja(parcela.getConta().getLoja());
|
- | |
| 386 | contaAPagar.setVigencia(parcela.getConta().getVigencia());
|
- | |
| 387 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.MENSAL.getValor())) {
|
- | |
| 388 | contaAPagar.setVigencia(vigenciaService.consultarProximaVigencia(parcela.getConta().getVigencia()));
|
- | |
| 389 | }
|
- | |
| 390 | contaService.cadastrar(contaAPagar);
|
- | |
| 391 |
|
- | |
| 392 | List<Parcela> parcelas = parcelaRepository.consultarParcelasDaConta(parcela.getConta());
|
- | |
| 393 | for (Parcela p : parcelas) {
|
- | |
| 394 | Parcela novaParcela = new Parcela();
|
- | |
| 395 | novaParcela.setConta(contaAPagar);
|
- | |
| 396 | novaParcela.setDataEmissao(DataUtils.getDataAtual());
|
- | |
| 397 | novaParcela.setContaBancaria(p.getContaBancaria());
|
- | |
| 398 | novaParcela.setObservacao(p.getObservacao());
|
- | |
| 399 | novaParcela.setValor(p.getValor());
|
- | |
| 400 | novaParcela.setIndicadorAtivo(true);
|
- | |
| 401 | novaParcela.setIndicadorOficial(p.getIndicadorOficial());
|
- | |
| 402 | if (p.getConta().getTipoFrequencia().equals(TipoFrequencia.DIARIAMENTE.getValor())) {
|
- | |
| 403 | novaParcela.setDataVencimento(DataUtils.acrescentarDias(p.getDataVencimento(), 1));
|
- | |
| 404 | }
|
- | |
| 405 | if (p.getConta().getTipoFrequencia().equals(TipoFrequencia.SEMANAL.getValor())) {
|
- | |
| 406 | novaParcela.setDataVencimento(DataUtils.acrescentarDias(p.getDataVencimento(), 7));
|
- | |
| 407 | }
|
- | |
| 408 | if (p.getConta().getTipoFrequencia().equals(TipoFrequencia.MENSAL.getValor())) {
|
- | |
| 409 | novaParcela.setDataVencimento(DataUtils.acrescentarMeses(p.getDataVencimento(), 1));
|
- | |
| 410 | }
|
- | |
| 411 | if (p.getConta().getTipoFrequencia().equals(TipoFrequencia.ANUAL.getValor())) {
|
- | |
| 412 | novaParcela.setDataVencimento(DataUtils.acrescentarAnos(p.getDataVencimento(), 1));
|
- | |
| 413 | }
|
- | |
| 414 | this.cadastrar(novaParcela);
|
- | |
| 415 | novaParcela.setConta(contaAPagar);
|
- | |
| 416 | }
|
- | |
| 417 |
|
- | |
| 418 | ContaGerenciadorDTO contaGerenciador = new ContaGerenciadorDTO();
|
- | |
| 419 | contaGerenciador.setConta(contaAPagar);
|
- | |
| 420 | return contaGerenciador;
|
- | |
| 421 | }
|
- | |
| 422 | }
|
- | |
| 423 | } else if (VerificadorUtil.naoEstaNulo(parcela.getConta())) {
|
- | |
| 424 | if (!parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.UNICA.getValor())) {
|
- | |
| 425 | Conta contaAReceber = new Conta();
|
- | |
| 426 | contaAReceber.setCategoria(parcela.getConta().getCategoria());
|
- | |
| 427 | contaAReceber.setPessoa(parcela.getConta().getPessoa());
|
- | |
| 428 | contaAReceber.setObservacao(parcela.getConta().getObservacao());
|
- | |
| 429 | contaAReceber.setTipoFrequencia(parcela.getConta().getTipoFrequencia());
|
- | |
| 430 | contaAReceber.setIndicadorAtivo(true);
|
- | |
| 431 | contaAReceber.setTipoConta(TipoConta.CONTA_A_RECEBER.getValor());
|
- | |
| 432 | contaAReceber.setLoja(parcela.getConta().getLoja());
|
- | |
| 433 | contaService.cadastrar(contaAReceber);
|
- | |
| 434 |
|
- | |
| 435 | Parcela novaParcela = new Parcela();
|
- | |
| 436 | novaParcela.setConta(contaAReceber);
|
- | |
| 437 | novaParcela.setDataEmissao(DataUtils.getDataAtual());
|
- | |
| 438 | novaParcela.setContaBancaria(parcela.getContaBancaria());
|
- | |
| 439 | novaParcela.setObservacao(parcela.getObservacao());
|
- | |
| 440 | novaParcela.setValor(parcela.getValor());
|
- | |
| 441 | novaParcela.setIndicadorAtivo(true);
|
- | |
| 442 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.DIARIAMENTE.getValor())) {
|
- | |
| 443 | novaParcela.setDataVencimento(DataUtils.acrescentarDias(parcela.getDataVencimento(), 1));
|
- | |
| 444 | }
|
- | |
| 445 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.SEMANAL.getValor())) {
|
- | |
| 446 | novaParcela.setDataVencimento(DataUtils.acrescentarDias(parcela.getDataVencimento(), 7));
|
- | |
| 447 | }
|
- | |
| 448 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.MENSAL.getValor())) {
|
- | |
| 449 | novaParcela.setDataVencimento(DataUtils.acrescentarMeses(parcela.getDataVencimento(), 1));
|
- | |
| 450 | }
|
- | |
| 451 | if (parcela.getConta().getTipoFrequencia().equals(TipoFrequencia.ANUAL.getValor())) {
|
- | |
| 452 | novaParcela.setDataVencimento(DataUtils.acrescentarAnos(parcela.getDataVencimento(), 1));
|
- | |
| 453 | }
|
- | |
| 454 | this.cadastrar(novaParcela);
|
- | |
| 455 | novaParcela.setConta(contaAReceber);
|
- | |
| 456 |
|
- | |
| 457 | ContaGerenciadorDTO contaGerenciador = new ContaGerenciadorDTO();
|
- | |
| 458 | contaGerenciador.setConta(contaAReceber);
|
- | |
| 459 | return contaGerenciador;
|
- | |
| 460 | }
|
- | |
| 461 | }
|
- | |
| 462 | return null;
|
- | |
| 463 | }
|
423 | }
|
| 464 |
|
424 |
|
| 465 | @Override
|
425 | @Override
|
| 466 | public List<CartaoDTO> gerarContasDosCartoes(List<VendaFormaPagamento> listaVendaFormaPagamento) {
|
426 | public List<CartaoDTO> gerarContasDosCartoes(List<VendaFormaPagamento> listaVendaFormaPagamento) {
|
| 467 | List<CartaoDTO> contas = new ArrayList<CartaoDTO>();
|
427 | List<CartaoDTO> contas = new ArrayList<CartaoDTO>();
|