Subversion Repositories Integrator Subversion

Rev

Rev 294 | Rev 297 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 294 Rev 296
Line 1... Line 1...
1
package br.com.ec.repository.jpa;
1
package br.com.ec.repository.jpa;
2
2
3
import java.util.Date;
3
import java.util.Date;
4
import java.util.List;
4
import java.util.List;
5
5
-
 
6
import javax.persistence.Query;
6
import javax.persistence.TypedQuery;
7
import javax.persistence.TypedQuery;
7
8
8
import org.springframework.stereotype.Repository;
9
import org.springframework.stereotype.Repository;
9
10
10
import br.com.ec.core.util.StringUtil;
-
 
-
 
11
import br.com.ec.core.consulta.ParametrosConsulta;
11
import br.com.ec.core.util.VerificadorUtil;
12
import br.com.ec.core.util.VerificadorUtil;
-
 
13
import br.com.ec.domain.dto.FormaPagamentoDTO;
12
import br.com.ec.domain.dto.ParcelaDTO;
14
import br.com.ec.domain.dto.ParcelaDTO;
-
 
15
import br.com.ec.domain.dto.consulta.ParametrosConsultaLancamentosDTO;
13
import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO;
16
import br.com.ec.domain.dto.consulta.ParametrosConsultaParcelasDTO;
14
import br.com.ec.domain.model.Parcela;
17
import br.com.ec.domain.model.Parcela;
15
import br.com.ec.domain.model.tipos.TipoCartao;
-
 
16
import br.com.ec.domain.shared.ConstantesSEC;
-
 
17
import br.com.ec.repository.ParcelaRepository;
18
import br.com.ec.repository.ParcelaRepository;
18
import br.com.ec.repository.SistemaAbstractRepository;
19
import br.com.ec.repository.SistemaAbstractRepository;
19
20
20
@Repository
21
@Repository
21
public class ParcelaRepositoryJpaImpl extends SistemaAbstractRepository<Parcela> implements ParcelaRepository {
22
public class ParcelaRepositoryJpaImpl extends SistemaAbstractRepository<Parcela> implements ParcelaRepository {
Line 66... Line 67...
66
                        return null;
67
                        return null;
67
                }
68
                }
68
        }
69
        }
69
       
70
       
70
        @Override
71
        @Override
71
        public List<ParcelaDTO> consultarParcelasAReceber(Long sequencialContaBancaria, Date dataRecebimento, TipoCartao tipoCartao) {
-
 
-
 
72
        public List<ParcelaDTO> consultarParcelasAReceber(Long sequencialContaBancaria, Date dataRecebimento, List<FormaPagamentoDTO> formasDePagamento) {
72
                StringBuilder sql = new StringBuilder();
73
                StringBuilder sql = new StringBuilder();
73
                sql.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(p.sequencial, p.contaBancaria.sequencial, p.contaBancaria.descricao, p.contaBancaria.tipoContaBancaria, p.contaBancaria.ativo, ");
74
                sql.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(p.sequencial, p.contaBancaria.sequencial, p.contaBancaria.descricao, p.contaBancaria.tipoContaBancaria, p.contaBancaria.ativo, ");
74
                sql.append("p.dataPagamento, p.valor, p.observacao) FROM Parcela p ");
75
                sql.append("p.dataPagamento, p.valor, p.observacao) FROM Parcela p ");
75
                sql.append("WHERE p.contaBancaria.sequencial = :sequencialContaBancaria ");
76
                sql.append("WHERE p.contaBancaria.sequencial = :sequencialContaBancaria ");
76
                sql.append("AND p.dataVencimento = :dataVencimento ");
77
                sql.append("AND p.dataVencimento = :dataVencimento ");
77
                sql.append("AND p.observacao like UPPER(:observacao) ");
-
 
-
 
78
                sql.append(setarParametrosFormasDePagamento("p", formasDePagamento));
78
                sql.append("AND p.dataPagamento is null ");
79
                sql.append("AND p.dataPagamento is null ");
79
                sql.append("ORDER BY p.dataVencimento ");
80
                sql.append("ORDER BY p.dataVencimento ");
80
                try {
81
                try {
81
                        return getEntityManager().createQuery(sql.toString(), ParcelaDTO.class)
82
                        return getEntityManager().createQuery(sql.toString(), ParcelaDTO.class)
82
                                        .setParameter("sequencialContaBancaria", sequencialContaBancaria)
83
                                        .setParameter("sequencialContaBancaria", sequencialContaBancaria)
83
                                        .setParameter("dataVencimento", dataRecebimento)
84
                                        .setParameter("dataVencimento", dataRecebimento)
84
                                        .setParameter("observacao", StringUtil.setarUpperCase("%" + tipoCartao.getDescricao() + "%" + "VENDA" + "%"))
-
 
85
                                        .getResultList();
85
                                        .getResultList();
86
                } catch(Exception ex) {
86
                } catch(Exception ex) {
87
                        ex.printStackTrace();
87
                        ex.printStackTrace();
88
                        return null;
88
                        return null;
89
                }
89
                }
90
        }
90
        }
91
       
91
       
92
        @Override
92
        @Override
93
        public List<ParcelaDTO> consultarParcelasRecebidas(Long sequencialContaBancaria, Date dataRecebimento, TipoCartao tipoCartao) {
-
 
-
 
93
        public List<ParcelaDTO> consultarParcelasRecebidas(Long sequencialContaBancaria, Date dataRecebimento, List<FormaPagamentoDTO> formasDePagamento) {
94
                StringBuilder sql = new StringBuilder();
94
                StringBuilder sql = new StringBuilder();
95
                sql.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(p.sequencial, p.contaBancaria.sequencial, p.contaBancaria.descricao, p.contaBancaria.tipoContaBancaria, p.contaBancaria.ativo, ");
95
                sql.append("SELECT new br.com.ec.domain.dto.ParcelaDTO(p.sequencial, p.contaBancaria.sequencial, p.contaBancaria.descricao, p.contaBancaria.tipoContaBancaria, p.contaBancaria.ativo, ");
96
                sql.append("p.dataPagamento, p.valor, p.observacao) FROM Parcela p ");
96
                sql.append("p.dataPagamento, p.valor, p.observacao) FROM Parcela p ");
97
                sql.append("WHERE p.contaBancaria.sequencial = :sequencialContaBancaria ");
97
                sql.append("WHERE p.contaBancaria.sequencial = :sequencialContaBancaria ");
98
                sql.append("AND p.dataPagamento = :dataPagamento ");
98
                sql.append("AND p.dataPagamento = :dataPagamento ");
99
                sql.append("AND p.observacao like UPPER(:observacao) ");
-
 
-
 
99
                sql.append(setarParametrosFormasDePagamento("p", formasDePagamento));
100
                sql.append("ORDER BY p.dataVencimento ");
100
                sql.append("ORDER BY p.dataVencimento ");
101
                try {
101
                try {
102
                        return getEntityManager().createQuery(sql.toString(), ParcelaDTO.class)
102
                        return getEntityManager().createQuery(sql.toString(), ParcelaDTO.class)
103
                                        .setParameter("sequencialContaBancaria", sequencialContaBancaria)
103
                                        .setParameter("sequencialContaBancaria", sequencialContaBancaria)
104
                                        .setParameter("dataPagamento", dataRecebimento)
104
                                        .setParameter("dataPagamento", dataRecebimento)
105
                                        .setParameter("observacao", StringUtil.setarUpperCase("%" + tipoCartao.getDescricao() + "%" + "VENDA" + "%"))
-
 
106
                                        .getResultList();
105
                                        .getResultList();
107
                } catch(Exception ex) {
106
                } catch(Exception ex) {
108
                        ex.printStackTrace();
107
                        ex.printStackTrace();
109
                        return null;
108
                        return null;
110
                }
109
                }
-
 
110
        }
-
 
111
       
-
 
112
        private String setarParametrosFormasDePagamento(String nomeTabela, List<FormaPagamentoDTO> formasPagamento) {
-
 
113
                StringBuilder sql = new StringBuilder();
-
 
114
                if (VerificadorUtil.isListaComElementos(formasPagamento)) {
-
 
115
                        sql.append("AND ");
-
 
116
                        sql.append(nomeTabela);
-
 
117
                        sql.append(".formaPagamento.codigo IN (");
-
 
118
                        for (FormaPagamentoDTO formaPagamento : formasPagamento) {
-
 
119
                                sql.append(formaPagamento.getCodigo() + ",");
-
 
120
                        }
-
 
121
                        sql.append(") ");
-
 
122
                }
-
 
123
                return sql.toString().replace(",)", ")");
-
 
124
        }
-
 
125
       
-
 
126
        @Override
-
 
127
        public void alterarDataPagamento(Long sequencialParcela, Date dataPagamento) {
-
 
128
                StringBuilder sql = new StringBuilder();
-
 
129
                sql.append("UPDATE Parcela parcela SET parcela.dataPagamento = :dataPagamento ");
-
 
130
                sql.append("WHERE parcela.sequencial = :sequencialParcela ");
-
 
131
                try {
-
 
132
                        getEntityManager().createQuery(sql.toString())
-
 
133
                                .setParameter("dataPagamento", dataPagamento)
-
 
134
                                .setParameter("sequencialParcela", sequencialParcela)
-
 
135
                                .executeUpdate();
-
 
136
                        getEntityManager().flush();
-
 
137
                } catch(Exception ex) {
-
 
138
                        ex.printStackTrace();
-
 
139
                }
-
 
140
        }
-
 
141
       
-
 
142
        @Override
-
 
143
        public Double obterValorPassandoParametrosConsulta(ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
144
                StringBuilder sql = new StringBuilder();
-
 
145
                sql.append("SELECT DISTINCT SUM(e.valor) FROM Parcela e ");
-
 
146
                sql.append("WHERE e.indicadorAtivo is true ");
-
 
147
                try {
-
 
148
                        setarStringParametrosConsulta(sql, parametrosConsulta);
-
 
149
                        TypedQuery<Double> query = getEntityManager().createQuery(sql.toString(), Double.class);
-
 
150
                        setarQueryParametrosConsulta(query, parametrosConsulta);
-
 
151
                        return query.getSingleResult();
-
 
152
                } catch(Exception ex) {
-
 
153
                        ex.printStackTrace();
-
 
154
                        return null;
-
 
155
                }
-
 
156
        }
-
 
157
       
-
 
158
        @Override
-
 
159
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
160
                if (VerificadorUtil.naoEstaNulo(parametrosConsulta)) {
-
 
161
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia())) {
-
 
162
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia().getSequencial().equals(new Long(-1))) {
-
 
163
                                        sql.append("AND e.conta.vigencia IS NULL ");
-
 
164
                                } else {
-
 
165
                                        sql.append("AND e.conta.vigencia.sequencial = :sequencialVigencia ");
-
 
166
                                }
-
 
167
                        }
-
 
168
                       
-
 
169
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos())) {
-
 
170
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCentroDeCustos().getSequencial().equals(new Long(-1))) {
-
 
171
                                        sql.append("AND e.conta.loja IS NULL ");
-
 
172
                                } else {
-
 
173
                                        sql.append("AND e.conta.loja.sequencial = :sequencialCentroDeCustos ");
-
 
174
                                }
-
 
175
                        }
-
 
176
                       
-
 
177
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getIndicadorDre())) {
-
 
178
                                sql.append("AND e.conta.categoria.indicadorDRE.codigo = :codigoIndicadorDre ");
-
 
179
                        } else if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getPagamentoRealizado()) {
-
 
180
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicialDoPeriodo()) &&
-
 
181
                                                VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinalDoPeriodo())) {
-
 
182
                                        sql.append("AND e.dataPagamento is not null ");
-
 
183
                                        sql.append("AND e.dataPagamento >= :dataInicial AND e.dataPagamento <= :dataFinal ");
-
 
184
                                }
-
 
185
                        } else {
-
 
186
                                sql.append("AND e.dataPagamento is null ");
-
 
187
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento())) {
-
 
188
                                        sql.append("AND e.dataVencimento = :dataVencimento ");
-
 
189
                                }
-
 
190
                                /*
-
 
191
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento())) {
-
 
192
                                        if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento().equals(TipoCartao.DEBITO.getValor())) {
-
 
193
                                                sql.append("AND e.conta.formaDePagamento.formaPagamento.codigo = 2 ");
-
 
194
                                        } else if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento().equals(TipoCartao.CREDITO.getValor())) {
-
 
195
                                                sql.append("AND e.conta.formaDePagamento.formaPagamento.codigo in (3, 4, 5, 7, 8, 9, 10, 11, 12, 13) ");
-
 
196
                                        }
-
 
197
                                }
-
 
198
                                */
-
 
199
                        }
-
 
200
                        /*
-
 
201
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria())) {
-
 
202
                                sql.append("AND e.contaBancaria.sequencial = :sequencialContaBancaria ");
-
 
203
                        }
-
 
204
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca())) {
-
 
205
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca().equals("R")) {
-
 
206
                                        sql.append("AND e.conta.tipoConta = 'R' ");
-
 
207
                                }
-
 
208
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca().equals("P")) {
-
 
209
                                        sql.append("AND e.conta.tipoConta = 'P' ");
-
 
210
                                }
-
 
211
                        }
-
 
212
                       
-
 
213
                       
-
 
214
                       
-
 
215
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCategoria())) {
-
 
216
                                sql.append("AND e.conta.categoria.sequencial = :sequencialCategoria ");
-
 
217
                        }
-
 
218
                       
-
 
219
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
220
                                sql.append("AND e.conta.pessoa.sequencial = :sequencialPessoa ");
-
 
221
                        }
-
 
222
                       
-
 
223
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
224
                                sql.append("AND e.conta.pessoa.sequencial = :sequencialPessoa ");
-
 
225
                        }
-
 
226
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getObservacao())) {
-
 
227
                                sql.append("AND upper(e.observacao) like upper(:observacao) ");
-
 
228
                        }
-
 
229
                       
-
 
230
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getOficial())) {
-
 
231
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getOficial()) {
-
 
232
                                        sql.append("AND e.indicadorOficial IS TRUE ");
-
 
233
                                } else {
-
 
234
                                        sql.append("AND e.indicadorOficial IS FALSE ");
-
 
235
                                }
-
 
236
                        }
-
 
237
                         */
-
 
238
                }
-
 
239
        }
-
 
240
       
-
 
241
        @Override
-
 
242
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
243
                if (VerificadorUtil.naoEstaNulo(parametrosConsulta)) {
-
 
244
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia())) {
-
 
245
                                if (!((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia().getSequencial().equals(new Long(-1))) {
-
 
246
                                        query.setParameter("sequencialVigencia", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getVigencia().getSequencial());
-
 
247
                                }
-
 
248
                        }
-
 
249
                       
-
 
250
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos())) {
-
 
251
                                if (!((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCentroDeCustos().getSequencial().equals(new Long(-1))) {
-
 
252
                                        query.setParameter("sequencialCentroDeCustos", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos().getSequencial());
-
 
253
                                }
-
 
254
                        }
-
 
255
                       
-
 
256
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getIndicadorDre())) {
-
 
257
                                query.setParameter("codigoIndicadorDre", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getIndicadorDre().getCodigo());
-
 
258
                        }
-
 
259
                       
-
 
260
                        if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getPagamentoRealizado()) {
-
 
261
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicialDoPeriodo()) &&
-
 
262
                                                VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinalDoPeriodo())) {
-
 
263
                                        query.setParameter("dataInicial", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicialDoPeriodo());
-
 
264
                                        query.setParameter("dataFinal", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinalDoPeriodo());
-
 
265
                                }
-
 
266
                        } else if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento())) {
-
 
267
                                query.setParameter("dataVencimento", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento());
-
 
268
                        }
-
 
269
                }
-
 
270
                /*
-
 
271
                if (VerificadorUtil.naoEstaNulo(parametrosConsulta)) {
-
 
272
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria())) {
-
 
273
                                query.setParameter("sequencialContaBancaria", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria().getSequencial());
-
 
274
                        }
-
 
275
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCategoria())) {
-
 
276
                                query.setParameter("sequencialCategoria", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCategoria().getSequencial());
-
 
277
                        }
-
 
278
                       
-
 
279
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
280
                                query.setParameter("sequencialPessoa", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getFavorecido().getSequencial());
-
 
281
                        }
-
 
282
                       
-
 
283
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getObservacao())) {
-
 
284
                                query.setParameter("observacao", "%" + ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getObservacao() + "%");
-
 
285
                        }
-
 
286
                }
-
 
287
                */
-
 
288
        }
-
 
289
       
-
 
290
        @Override
-
 
291
        protected void setarStringParametrosConsultar(StringBuilder sql, Parcela parcela) {
-
 
292
                /*
-
 
293
                if (VerificadorUtil.naoEstaNulo(parcela)) {
-
 
294
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta())) {
-
 
295
                                if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta().getSequencial())) {
-
 
296
                                        sql.append("AND e.conta.sequencial = :sequencialConta ");
-
 
297
                                }
-
 
298
                        }
-
 
299
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getIndicadorAtivo())) {
-
 
300
                                sql.append("AND e.indicadorAtivo = :indicadorAtivo ");
-
 
301
                        }
-
 
302
                }
-
 
303
                */
-
 
304
        }
-
 
305
       
-
 
306
        @Override
-
 
307
        protected void setarQueryParametrosConsultar(Query query, Parcela parcela) {
-
 
308
                /*
-
 
309
                if (VerificadorUtil.naoEstaNulo(parcela)) {
-
 
310
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta())) {
-
 
311
                                if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta().getSequencial())) {
-
 
312
                                        query.setParameter("sequencialConta", parcela.getConta().getSequencial());
-
 
313
                                }
-
 
314
                        }
-
 
315
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getIndicadorAtivo())) {
-
 
316
                                query.setParameter("indicadorAtivo", parcela.getIndicadorAtivo());
-
 
317
                        }
-
 
318
                }
-
 
319
                */
111
        }
320
        }
112
       
321
       
113
        /*
322
        /*
114
        @Override
323
        @Override
115
        public List<Parcela> consultarParcelas(ParametrosConsultaLancamentosDTO parametrosConsulta) {
324
        public List<Parcela> consultarParcelas(ParametrosConsultaLancamentosDTO parametrosConsulta) {
Line 279... Line 488...
279
                TypedQuery<Long> query = getEntityManager().createQuery(sql.toString(), Long.class);
488
                TypedQuery<Long> query = getEntityManager().createQuery(sql.toString(), Long.class);
280
                query.setParameter("sequencialVenda", venda.getSequencial());
489
                query.setParameter("sequencialVenda", venda.getSequencial());
281
                return query.getSingleResult().intValue()>0;
490
                return query.getSingleResult().intValue()>0;
282
        }
491
        }
283
       
492
       
284
        @Override
-
 
285
        public Double obterValorPassandoParametrosConsulta(ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
286
                StringBuilder sql = new StringBuilder();
-
 
287
                sql.append("SELECT DISTINCT SUM(e.valor) FROM Parcela e ");
-
 
288
                sql.append("WHERE e.indicadorAtivo is true ");
-
 
289
                try {
-
 
290
                        setarStringParametrosConsulta(sql, parametrosConsulta);
-
 
291
                        TypedQuery<Double> query = getEntityManager().createQuery(sql.toString(), Double.class);
-
 
292
                        setarQueryParametrosConsulta(query, parametrosConsulta);
-
 
293
                        return query.getSingleResult();
-
 
294
                } catch(Exception ex) {
-
 
295
                        ex.printStackTrace();
-
 
296
                        return null;
-
 
297
                }
-
 
298
        }
-
 
299
       
493
       
300
        @Override
-
 
301
        protected void setarStringParametrosConsulta(StringBuilder sql, ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
302
                if (VerificadorUtil.naoEstaNulo(parametrosConsulta)) {
-
 
303
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria())) {
-
 
304
                                sql.append("AND e.contaBancaria.sequencial = :sequencialContaBancaria ");
-
 
305
                        }
-
 
306
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca())) {
-
 
307
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca().equals("R")) {
-
 
308
                                        sql.append("AND e.conta.tipoConta = 'R' ");
-
 
309
                                }
-
 
310
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoBusca().equals("P")) {
-
 
311
                                        sql.append("AND e.conta.tipoConta = 'P' ");
-
 
312
                                }
-
 
313
                        }
-
 
314
                       
-
 
315
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos())) {
-
 
316
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCentroDeCustos().getSequencial().equals(new Long(-1))) {
-
 
317
                                        sql.append("AND e.conta.loja IS NULL ");
-
 
318
                                } else {
-
 
319
                                        sql.append("AND e.conta.loja.sequencial = :sequencialCentroDeCustos ");
-
 
320
                                }
-
 
321
                        }
-
 
322
                       
-
 
323
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCategoria())) {
-
 
324
                                sql.append("AND e.conta.categoria.sequencial = :sequencialCategoria ");
-
 
325
                        }
-
 
326
                       
-
 
327
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
328
                                sql.append("AND e.conta.pessoa.sequencial = :sequencialPessoa ");
-
 
329
                        }
-
 
330
                       
-
 
331
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
332
                                sql.append("AND e.conta.pessoa.sequencial = :sequencialPessoa ");
-
 
333
                        }
-
 
334
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getObservacao())) {
-
 
335
                                sql.append("AND upper(e.observacao) like upper(:observacao) ");
-
 
336
                        }
-
 
337
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia())) {
-
 
338
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia().getSequencial().equals(new Long(-1))) {
-
 
339
                                        sql.append("AND e.conta.vigencia IS NULL ");
-
 
340
                                } else {
-
 
341
                                        sql.append("AND e.conta.vigencia = :vigencia ");
-
 
342
                                }
-
 
343
                        }
-
 
344
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getOficial())) {
-
 
345
                                if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getOficial()) {
-
 
346
                                        sql.append("AND e.indicadorOficial IS TRUE ");
-
 
347
                                } else {
-
 
348
                                        sql.append("AND e.indicadorOficial IS FALSE ");
-
 
349
                                }
-
 
350
                        }
-
 
351
                       
-
 
352
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getIndicadorDRE())) {
-
 
353
                                sql.append("AND e.conta.categoria.indicadorDRE = :indicadorDRE ");
-
 
354
                        } else if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getPagamentoRealizado()) {
-
 
355
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicial()) &&
-
 
356
                                                VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinal())) {
-
 
357
                                        sql.append("AND e.dataPagamento is not null ");
-
 
358
                                        sql.append("AND e.dataPagamento >= :dataInicial AND e.dataPagamento <= :dataFinal ");
-
 
359
                                }
-
 
360
                        } else {
-
 
361
                                sql.append("AND e.dataPagamento is null ");
-
 
362
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento())) {
-
 
363
                                        sql.append("AND e.dataVencimento = :dataVencimento ");
-
 
364
                                }
-
 
365
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento())) {
-
 
366
                                        if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento().equals(TipoCartao.DEBITO.getValor())) {
-
 
367
                                                sql.append("AND e.conta.formaDePagamento.formaPagamento.codigo = 2 ");
-
 
368
                                        } else if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getTipoFormaDePagamento().equals(TipoCartao.CREDITO.getValor())) {
-
 
369
                                                sql.append("AND e.conta.formaDePagamento.formaPagamento.codigo in (3, 4, 5, 7, 8, 9, 10, 11, 12, 13) ");
-
 
370
                                        }
-
 
371
                                }
-
 
372
                        }
-
 
373
                }
-
 
374
        }
-
 
375
       
-
 
376
        @Override
-
 
377
        protected void setarQueryParametrosConsulta(Query query, ParametrosConsulta<Parcela> parametrosConsulta) {
-
 
378
                if (VerificadorUtil.naoEstaNulo(parametrosConsulta)) {
-
 
379
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria())) {
-
 
380
                                query.setParameter("sequencialContaBancaria", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getContaBancaria().getSequencial());
-
 
381
                        }
-
 
382
                       
-
 
383
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos())) {
-
 
384
                                if (!((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCentroDeCustos().getSequencial().equals(new Long(-1))) {
-
 
385
                                        query.setParameter("sequencialCentroDeCustos", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCentroDeCustos().getSequencial());
-
 
386
                                }
-
 
387
                        }
-
 
388
                       
-
 
389
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getCategoria())) {
-
 
390
                                query.setParameter("sequencialCategoria", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getCategoria().getSequencial());
-
 
391
                        }
-
 
392
                       
-
 
393
                        if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getFavorecido())) {
-
 
394
                                query.setParameter("sequencialPessoa", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getFavorecido().getSequencial());
-
 
395
                        }
-
 
396
                       
-
 
397
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getObservacao())) {
-
 
398
                                query.setParameter("observacao", "%" + ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getObservacao() + "%");
-
 
399
                        }
-
 
400
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia())) {
-
 
401
                                if (!((ParametrosConsultaLancamentosDTO)parametrosConsulta).getVigencia().getSequencial().equals(new Long(-1))) {
-
 
402
                                        query.setParameter("vigencia", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getVigencia());
-
 
403
                                }
-
 
404
                        }
-
 
405
                        if (VerificadorUtil.naoEstaNuloOuVazio(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getIndicadorDRE())) {
-
 
406
                                query.setParameter("indicadorDRE", ((ParametrosConsultaLancamentosDTO) parametrosConsulta).getIndicadorDRE());
-
 
407
                        }
-
 
408
                       
-
 
409
                        if (((ParametrosConsultaLancamentosDTO)parametrosConsulta).getPagamentoRealizado()) {
-
 
410
                                if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicial()) &&
-
 
411
                                                VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinal())) {
-
 
412
                                        query.setParameter("dataInicial", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataInicial());
-
 
413
                                        query.setParameter("dataFinal", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataFinal());
-
 
414
                                }
-
 
415
                        } else if (VerificadorUtil.naoEstaNulo(((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento())) {
-
 
416
                                query.setParameter("dataVencimento", ((ParametrosConsultaLancamentosDTO)parametrosConsulta).getDataVencimento());
-
 
417
                        }
-
 
418
                }
-
 
419
               
-
 
420
        }
-
 
421
       
-
 
422
        @Override
-
 
423
        protected void setarStringParametrosConsultar(StringBuilder sql, Parcela parcela) {
-
 
424
                if (VerificadorUtil.naoEstaNulo(parcela)) {
-
 
425
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta())) {
-
 
426
                                if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta().getSequencial())) {
-
 
427
                                        sql.append("AND e.conta.sequencial = :sequencialConta ");
-
 
428
                                }
-
 
429
                        }
-
 
430
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getIndicadorAtivo())) {
-
 
431
                                sql.append("AND e.indicadorAtivo = :indicadorAtivo ");
-
 
432
                        }
-
 
433
                }
-
 
434
        }
-
 
435
       
-
 
436
        @Override
-
 
437
        protected void setarQueryParametrosConsultar(Query query, Parcela parcela) {
-
 
438
                if (VerificadorUtil.naoEstaNulo(parcela)) {
-
 
439
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta())) {
-
 
440
                                if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getConta().getSequencial())) {
-
 
441
                                        query.setParameter("sequencialConta", parcela.getConta().getSequencial());
-
 
442
                                }
-
 
443
                        }
-
 
444
                        if (VerificadorUtil.naoEstaNuloOuVazio(parcela.getIndicadorAtivo())) {
-
 
445
                                query.setParameter("indicadorAtivo", parcela.getIndicadorAtivo());
-
 
446
                        }
-
 
447
                }
-
 
448
        }
-
 
449
        */
494
        */
450
}
495
}