Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
667 blopes 1
package br.com.ec.domain.dto;
2
 
3
import java.util.ArrayList;
671 blopes 4
import java.util.Date;
667 blopes 5
import java.util.List;
6
 
668 blopes 7
import org.apache.commons.httpclient.util.DateUtil;
667 blopes 8
import org.primefaces.model.file.UploadedFile;
9
 
730 blopes 10
import br.com.ec.core.exception.NegocioException;
668 blopes 11
import br.com.ec.core.util.StringUtil;
667 blopes 12
import br.com.ec.core.util.VerificadorUtil;
13
import br.com.ec.web.util.DataUtil;
14
 
15
public class ExtratoAntecipacaoArquivoDTO {
16
 
671 blopes 17
        private Date dataRecebimento;
667 blopes 18
        private ContaBancariaDTO contaBancariaDTO;
19
        private UploadedFile arquivoAntecipacao;
20
        private List<String> linhasArquivo;
669 blopes 21
        private String sqlConsultaParcelas;
671 blopes 22
        private String sqlAtualizacaoParcelas;
667 blopes 23
 
24
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO;
679 blopes 25
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOConciliados;
667 blopes 26
        private List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao;
27
 
28
        public ExtratoAntecipacaoArquivoDTO() {
29
                this.dadosExtratoAntecipacaoDTO = new ArrayList<ExtratoAntecipacaoDTO>();
30
        }
31
 
32
        public ExtratoAntecipacaoArquivoDTO(UploadedFile arquivoAntecipacao) {
33
                super();
34
                this.arquivoAntecipacao = arquivoAntecipacao;
35
        }
36
 
671 blopes 37
        public Date getDataRecebimento() {
38
                return dataRecebimento;
39
        }
40
        public void setDataRecebimento(Date dataRecebimento) {
41
                this.dataRecebimento = dataRecebimento;
42
        }
43
 
667 blopes 44
        public ContaBancariaDTO getContaBancariaDTO() {
45
                return contaBancariaDTO;
46
        }
47
        public void setContaBancariaDTO(ContaBancariaDTO contaBancariaDTO) {
48
                this.contaBancariaDTO = contaBancariaDTO;
49
        }
50
 
51
        public UploadedFile getArquivoAntecipacao() {
52
                return arquivoAntecipacao;
53
        }
54
        public void setArquivoAntecipacao(UploadedFile arquivoAntecipacao) {
55
                this.arquivoAntecipacao = arquivoAntecipacao;
56
        }
57
 
58
        public List<String> getLinhasArquivo() {
59
                return linhasArquivo;
60
        }
61
        public void setLinhasArquivo(List<String> linhasArquivo) {
62
                this.linhasArquivo = linhasArquivo;
63
        }
64
 
669 blopes 65
        public String getSqlConsultaParcelas() {
66
                return sqlConsultaParcelas;
67
        }
68
        public void setSqlConsultaParcelas(String sqlConsultaParcelas) {
69
                this.sqlConsultaParcelas = sqlConsultaParcelas;
70
        }
71
 
671 blopes 72
        public String getSqlAtualizacaoParcelas() {
73
                return sqlAtualizacaoParcelas;
74
        }
75
        public void setSqlAtualizacaoParcelas(String sqlAtualizacaoParcelas) {
76
                this.sqlAtualizacaoParcelas = sqlAtualizacaoParcelas;
77
        }
78
 
667 blopes 79
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTO() {
80
                return dadosExtratoAntecipacaoDTO;
81
        }
82
        public void setDadosExtratoAntecipacaoDTO(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTO) {
83
                this.dadosExtratoAntecipacaoDTO = dadosExtratoAntecipacaoDTO;
84
        }
85
 
679 blopes 86
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTOConciliados() {
87
                return dadosExtratoAntecipacaoDTOConciliados;
88
        }
89
        public void setDadosExtratoAntecipacaoDTOConciliados(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOConciliados) {
90
                this.dadosExtratoAntecipacaoDTOConciliados = dadosExtratoAntecipacaoDTOConciliados;
91
        }
92
 
667 blopes 93
        public List<ExtratoAntecipacaoDTO> getDadosExtratoAntecipacaoDTOSemConciliacao() {
94
                return dadosExtratoAntecipacaoDTOSemConciliacao;
95
        }
96
        public void setDadosExtratoAntecipacaoDTOSemConciliacao(List<ExtratoAntecipacaoDTO> dadosExtratoAntecipacaoDTOSemConciliacao) {
97
                this.dadosExtratoAntecipacaoDTOSemConciliacao = dadosExtratoAntecipacaoDTOSemConciliacao;
98
        }
99
 
100
        /**************************************/
101
 
679 blopes 102
        public Double valorTotalConciliado() {
103
                Double valorTotal = 0.0;
104
                if  (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoAntecipacaoDTOConciliados())) {
105
                        for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : getDadosExtratoAntecipacaoDTOConciliados()) {
106
                                valorTotal += extratoAntecipacaoDTO.getValorLiquido();
107
                        }
108
                }
109
                return valorTotal;
110
        }
111
 
112
        public Double valorTotalNaoConciliado() {
113
                Double valorTotal = 0.0;
114
                if  (VerificadorUtil.naoEstaNuloOuVazio(getDadosExtratoAntecipacaoDTOSemConciliacao())) {
115
                        for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : getDadosExtratoAntecipacaoDTOSemConciliacao()) {
116
                                valorTotal += extratoAntecipacaoDTO.getValorLiquido();
117
                        }
118
                }
119
                return valorTotal;
120
        }
121
 
122
        /**************************************/
123
 
667 blopes 124
        /*
125
        public Boolean todoExtratoConciliado() {
126
                if (!VerificadorUtil.isListaNulaOuVazia(getDadosExtratoBancoDTO())) {
127
                        for (ExtratoBancoDTO extratoBancoDTO : getDadosExtratoBancoDTO()) {
128
                                if (!extratoBancoDTO.getIndicadorConciliado()) {
129
                                        return false;
130
                                }
131
                        }
132
                }
133
                return true;
134
        }
135
        */
136
 
718 blopes 137
        public void extrairDadosArquivo(Date dataAntecipacao) {
667 blopes 138
                List<ExtratoAntecipacaoDTO> extratoAntecipacaoDTOs = new ArrayList<ExtratoAntecipacaoDTO>();
139
                Long sequencial = new Long(1);
140
                for (String linha : this.getLinhasArquivo()) {
141
                        String[] dadosSeparados = linha.split(";");
142
                        if (dadosSeparados.length >= 29) {
143
                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[2])) {
144
                                        if (dadosSeparados[29].contains("antecipada")) {
145
                                                ExtratoAntecipacaoDTO extratoAntecipacaoDTO = new ExtratoAntecipacaoDTO();
146
                                                extratoAntecipacaoDTO.setSequencial(sequencial);
147
                                                sequencial++;
671 blopes 148
                                                extratoAntecipacaoDTO.setDataRecebimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[0]));
678 blopes 149
                                                extratoAntecipacaoDTO.setDataVenda(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[1]));
667 blopes 150
                                                extratoAntecipacaoDTO.setDataVencimento(DataUtil.retornarDataApartirString("dd/MM/yyyy", dadosSeparados[2]));
151
                                                Double valor = 0.0;
152
                                                if (VerificadorUtil.naoEstaNuloOuVazio(dadosSeparados[7])) {
153
                                                        String valorLinha = dadosSeparados[7].replace("R$", "").trim();
679 blopes 154
                                                        valor = new Double(valorLinha.replace(".", "").replace(",", "."));
667 blopes 155
                                                }
670 blopes 156
                                                String bandeira = StringUtil.setarUpperCaseComTrim(dadosSeparados[21]);
157
                                                if (bandeira.equals("AMEX")) {
158
                                                        bandeira = "AMERICAN EXPRESS";
159
                                                }
160
                                                extratoAntecipacaoDTO.setBandeira(bandeira);
667 blopes 161
                                                extratoAntecipacaoDTO.setValorLiquido(valor);
668 blopes 162
                                                extratoAntecipacaoDTO.setQuantidadeParcelas(new Integer(dadosSeparados[22]));
163
                                                extratoAntecipacaoDTO.setNumeroDaParcela(new Integer(dadosSeparados[23]));
667 blopes 164
                                                extratoAntecipacaoDTOs.add(extratoAntecipacaoDTO);
165
                                        }
166
                                }
167
                        }
168
                }
169
 
668 blopes 170
                StringBuilder sqlConsulta = new StringBuilder();
669 blopes 171
                sqlConsulta.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(");
172
                sqlConsulta.append(ParcelaDTO.CONSULTA_SEM_CATEGORIA_DTO);
173
                sqlConsulta.append(") FROM Parcela e ");
174
                sqlConsulta.append("WHERE e.indicadorAtivo IS TRUE AND e.dataPagamento IS NULL AND (");
730 blopes 175
 
176
                if (VerificadorUtil.isListaNulaOuVazia(extratoAntecipacaoDTOs)) {
177
                        throw new NegocioException("PLANILHA SEM ANTECIPAÇÃO ENCONTRADA");
178
                }
179
 
669 blopes 180
                for (ExtratoAntecipacaoDTO extratoAntecipacaoDTO : extratoAntecipacaoDTOs) {
181
                        Double valorInicial = extratoAntecipacaoDTO.getValorLiquido() - 0.10;
182
                        Double valorFinal = extratoAntecipacaoDTO.getValorLiquido() + 0.10;
718 blopes 183
                        sqlConsulta.append("(");
184
                        sqlConsulta.append("(e.dataVencimento = '" + DateUtil.formatDate(extratoAntecipacaoDTO.getDataVencimento(), "yyyy-MM-dd") + "' OR ");
185
                        sqlConsulta.append("e.dataVencimento = '" + DateUtil.formatDate(dataAntecipacao, "yyyy-MM-dd") + "'");
186
                        sqlConsulta.append(") AND ");
669 blopes 187
                        sqlConsulta.append("e.valor >= " + valorInicial + " AND e.valor <= " + valorFinal + " AND ");
188
                        sqlConsulta.append("e.observacao LIKE 'CRÉDITO " + extratoAntecipacaoDTO.getNumeroDaParcela() + "/" + extratoAntecipacaoDTO.getQuantidadeParcelas() + "%" + extratoAntecipacaoDTO.getBandeira() + "%') ");
189
                        sqlConsulta.append("OR ");
190
                }
191
                sqlConsulta.append(")");
668 blopes 192
 
669 blopes 193
                setDadosExtratoAntecipacaoDTOSemConciliacao(extratoAntecipacaoDTOs);
194
                setSqlConsultaParcelas(sqlConsulta.toString().replace("OR )", ")"));
667 blopes 195
        }
196
 
197
        public static void main(String[] args) {
198
                String valor = "SISPAG PAG TIT BANCO 00";
199
                System.out.println(!valor.contains("SISPAG PAG"));
200
        }
201
 
202
}