Subversion Repositories Integrator Subversion

Rev

Rev 379 | Rev 392 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
296 espaco 1
package br.com.ec.domain.dto;
2
 
379 espaco 3
import java.util.ArrayList;
296 espaco 4
import java.util.List;
5
 
6
import org.primefaces.model.file.UploadedFile;
7
 
380 espaco 8
import br.com.ec.core.util.DataUtils;
379 espaco 9
import br.com.ec.core.util.VerificadorUtil;
296 espaco 10
import br.com.ec.domain.model.tipos.TipoExtratoBancarioCsv;
379 espaco 11
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
12
import br.com.ec.web.util.DataUtil;
296 espaco 13
 
14
public class ExtratoBancarioArquivoDTO {
15
 
16
        private ContaBancariaDTO contaBancariaDTO;
17
        private String tipoExtratoBancarioCsv;
18
        private UploadedFile arquivoExtratoBancario;
19
        private List<String> linhasArquivo;
20
 
377 espaco 21
        private List<ExtratoBancoDTO> dadosExtratoBancoDTO;
380 espaco 22
        private List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO;
377 espaco 23
 
379 espaco 24
        public ExtratoBancarioArquivoDTO() {
25
                this.dadosExtratoBancoDTO = new ArrayList<ExtratoBancoDTO>();
380 espaco 26
                this.dadosExtratoBancoSemCategoriaDTO = new ArrayList<ExtratoBancoDTO>();
379 espaco 27
        }
296 espaco 28
 
29
        public ExtratoBancarioArquivoDTO(String tipoExtratoBancarioCsv, UploadedFile arquivoExtratoBancario) {
30
                super();
31
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
32
                this.arquivoExtratoBancario = arquivoExtratoBancario;
33
        }
34
 
35
        public ContaBancariaDTO getContaBancariaDTO() {
36
                return contaBancariaDTO;
37
        }
38
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
39
                this.contaBancariaDTO = contaBancariaDTO;
40
        }
41
 
42
        public String getTipoExtratoBancarioCsv() {
43
                return tipoExtratoBancarioCsv;
44
        }
45
        public void setTipoExtratoBancarioCsv(String tipoExtratoBancarioCsv) {
46
                this.tipoExtratoBancarioCsv = tipoExtratoBancarioCsv;
47
        }
48
        public String getDescricaoTipoExtratoBancarioCsv() {
379 espaco 49
                if (VerificadorUtil.naoEstaNuloOuVazio(getTipoExtratoBancarioCsv())) {
50
                        return TipoExtratoBancarioCsv.parse(getTipoExtratoBancarioCsv()).getDescricao();
51
                }
52
                return "";
296 espaco 53
        }
54
 
55
        public UploadedFile getArquivoExtratoBancario() {
56
                return arquivoExtratoBancario;
57
        }
58
        public void setArquivoExtratoBancario(UploadedFile arquivoExtratoBancario) {
59
                this.arquivoExtratoBancario = arquivoExtratoBancario;
60
        }
61
 
62
        public List<String> getLinhasArquivo() {
63
                return linhasArquivo;
64
        }
65
        public void setLinhasArquivo(List<String> linhasArquivo) {
66
                this.linhasArquivo = linhasArquivo;
67
        }
68
 
377 espaco 69
        public List<ExtratoBancoDTO> getDadosExtratoBancoDTO() {
70
                return dadosExtratoBancoDTO;
71
        }
72
        public void setDadosExtratoBancoDTO(List<ExtratoBancoDTO> dadosExtratoBancoDTO) {
73
                this.dadosExtratoBancoDTO = dadosExtratoBancoDTO;
74
        }
75
 
380 espaco 76
        public List<ExtratoBancoDTO> getDadosExtratoBancoSemCategoriaDTO() {
77
                return dadosExtratoBancoSemCategoriaDTO;
78
        }
79
        public void setDadosExtratoBancoSemCategoriaDTO(List<ExtratoBancoDTO> dadosExtratoBancoSemCategoriaDTO) {
80
                this.dadosExtratoBancoSemCategoriaDTO = dadosExtratoBancoSemCategoriaDTO;
81
        }
82
 
379 espaco 83
        /**************************************/
84
 
85
        public Boolean todoExtratoConciliado() {
86
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
87
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
88
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
89
                                        return false;
90
                                }
91
                        }
92
                }
93
                return true;
94
        }
95
 
380 espaco 96
        public void extrairDados(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
379 espaco 97
                if (getTipoExtratoBancarioCsv().equals(TipoExtratoBancarioCsv.EXTRATO_BANCARIO_CSV_ITAU.getValor())) {
98
                        setDadosExtratoBancoDTO(new ArrayList<ExtratoBancoDTO>());
380 espaco 99
                        getDadosExtratoBancoDTO().addAll(extrairDadosItau(extratosAnexadosAnteriormente));
379 espaco 100
                }
101
        }
102
 
380 espaco 103
        private List<ExtratoBancoDTO> extrairDadosItau(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente) {
379 espaco 104
                List<ExtratoBancoDTO> extratosExtraidos = new ArrayList<ExtratoBancoDTO>();
380 espaco 105
                List<ExtratoBancoDTO> extratosExtraidosSemCategoria = new ArrayList<ExtratoBancoDTO>();
379 espaco 106
                for (String linha : this.getLinhasArquivo()) {
107
                        String[] dadosSeparados = linha.split(";");
108
                        if (dadosSeparados.length > 0) {
109
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[0])) {
110
                                        if (dadosSeparados[0].contains("/")) {
111
                                                ExtratoBancoDTO extratoBancoDTO = new ExtratoBancoDTO();
112
                                                extratoBancoDTO.setContaBancariaDTO(this.getContaBancariaDTO());
113
                                                extratoBancoDTO.setDataLancamento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
114
                                                extratoBancoDTO.setIndicadorCadastrar(false);
115
                                                if (dadosSeparados.length >= 3) {
116
                                                        extratoBancoDTO.setDescricao(dadosSeparados[1]);
117
                                                        Double valor = 0.0;
118
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
119
                                                                valor = new Double(dadosSeparados[2].replace(".", "").replace(",", ".") );
120
                                                        }
121
                                                        extratoBancoDTO.setValorTotal(valor);
122
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.SEM_CATEGORIA.getValor());
123
                                                        if (extratoBancoDTO.getDescricao().contains("DB")) {
124
                                                                extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.DEBITOS.getValor());
125
                                                } else if (extratoBancoDTO.getDescricao().contains("CD") ||
126
                                                                   extratoBancoDTO.getDescricao().contains("REDE  EL ") ||
127
                                                                   extratoBancoDTO.getDescricao().contains("REDE  MC ") ||
128
                                                                   extratoBancoDTO.getDescricao().contains("REDE  VS ") ||
129
                                                                   extratoBancoDTO.getDescricao().contains("REDE  HC ") ||
130
                                                                   extratoBancoDTO.getDescricao().contains("REDE  AM ")) {
131
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.CREDITOS.getValor());
132
                                                } else if (extratoBancoDTO.getDescricao().contains("TRANSF") ||
133
                                                                   extratoBancoDTO.getDescricao().contains("PIX QRS")) {
134
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.TRANSFERENCIAS.getValor());
135
                                                } else if (extratoBancoDTO.getDescricao().contains("APLIC AUT")) {
136
                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.OUTROS.getValor());       
137
                                                } else if (!extratoBancoDTO.getDescricao().contains("SALDO PARCIAL")) {
138
                                                        if (VerificadorUtil.naoEstaNulo(valor)) {
139
                                                                if (valor < 0.0) {
140
                                                                        extratoBancoDTO.setValorTotal(valor * -1);
141
                                                                        extratoBancoDTO.setTipoExtratoBanco(TipoExtratoBanco.PAGAMENTO.getValor());
142
                                                                }
143
                                                        }
144
                                                }
145
                                                }
146
                                                if (!extratoBancoDTO.getTipoExtratoBanco().equals(TipoExtratoBanco.SEM_CATEGORIA.getValor())) {
147
                                                        extratoBancoDTO.setIndicadorCadastrar(true);
380 espaco 148
                                                } else {
149
                                                        extratosExtraidosSemCategoria.add(extratoBancoDTO);
379 espaco 150
                                                }
380 espaco 151
                                                if (!dadoExtratoBancarioEhNovo(extratosAnexadosAnteriormente, extratoBancoDTO)) {
152
                                                        extratoBancoDTO.setIndicadorCadastrar(false);
153
                                                }
379 espaco 154
                                                extratosExtraidos.add(extratoBancoDTO);
155
                                        }
156
                                }
157
                        }
158
                }
380 espaco 159
                setDadosExtratoBancoSemCategoriaDTO(extratosExtraidosSemCategoria);
379 espaco 160
                return extratosExtraidos;
161
        }
162
 
380 espaco 163
        private Boolean dadoExtratoBancarioEhNovo(List<ExtratoBancarioArquivoDTO> extratosAnexadosAnteriormente, ExtratoBancoDTO extratoBancoNovoDTO) {
164
                List<ExtratoBancoDTO> extratosAnexados = new ArrayList<ExtratoBancoDTO>();
165
                for (ExtratoBancarioArquivoDTO extratoBancarioArquivoDTO : extratosAnexadosAnteriormente) {
166
                        if (extratoBancarioArquivoDTO.getContaBancariaDTO().getSequencial().equals(extratoBancoNovoDTO.getContaBancariaDTO().getSequencial())) {
167
                                extratosAnexados.addAll(extratoBancarioArquivoDTO.getDadosExtratoBancoDTO());
168
                                break;
169
                        }
170
                }
171
                for (ExtratoBancoDTO extratoBancoDTO : extratosAnexados) {
172
                        if (DataUtils.datasIguais(extratoBancoDTO.getDataLancamento(), extratoBancoNovoDTO.getDataLancamento()) &&
173
                                extratoBancoDTO.getDescricao().equals(extratoBancoNovoDTO.getDescricao()) &&
174
                                extratoBancoDTO.getValorTotal().equals(extratoBancoNovoDTO.getValorTotal())) {
175
                                return false;
176
                        }
177
                }
178
                return true;
179
        }
180
 
181
        public void marcarTodosDadosExtrato() {
379 espaco 182
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
183
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
380 espaco 184
                                extratoBancoDTO.setIndicadorCadastrar(true);
379 espaco 185
                        }
186
                }
187
        }
188
 
380 espaco 189
        public void desmarcarTodosDadosExtrato() {
190
                if (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoBancoDTO())) {
191
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
192
                                extratoBancoDTO.setIndicadorCadastrar(false);
193
                        }
194
                }
195
        }
196
 
296 espaco 197
}