Subversion Repositories Integrator Subversion

Rev

Rev 230 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
229 espaco 1
package br.com.ec.domain.service.impl;
2
 
3
import java.util.ArrayList;
4
import java.util.List;
5
 
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.stereotype.Service;
8
 
9
import br.com.ec.core.generic.AbstractService;
10
import br.com.ec.core.generic.GenericRepository;
11
import br.com.ec.core.util.DataUtils;
12
import br.com.ec.core.validador.Validador;
13
import br.com.ec.domain.dto.LojaDTO;
14
import br.com.ec.domain.dto.TempoRealDTO;
15
import br.com.ec.domain.dto.TempoRealLojaDTO;
16
import br.com.ec.domain.service.LojaService;
17
import br.com.ec.domain.service.TempoRealService;
18
import br.com.ec.domain.service.VendaService;
19
import br.com.ec.repository.DashboardRepository;
20
 
21
@Service
22
public class TempoRealServiceImpl extends AbstractService<TempoRealDTO> implements TempoRealService {
23
 
24
        private LojaService lojaService;
25
        private VendaService vendaService;
26
 
27
//      private DashboardRepository dashboardRepository;
28
 
29
        @Autowired
30
        public TempoRealServiceImpl(Validador validador, LojaService lojaService, VendaService vendaService, DashboardRepository dashboardRepository) {
31
                super(validador);
32
                this.lojaService = lojaService;
33
                this.vendaService = vendaService;
34
        }
35
 
36
        @Override
37
        protected GenericRepository<TempoRealDTO> getRepository() {
38
                return null;
39
        }
40
 
41
        @Override
42
        public TempoRealDTO consultarTempoReal() {
43
                TempoRealDTO tempoReal = new TempoRealDTO();
44
                List<LojaDTO> lojasAtivasDTO = lojaService.consultarLojasAtivas();
45
                List<TempoRealLojaDTO> lojasTempoRealDTO = new ArrayList<TempoRealLojaDTO>();
46
                for (LojaDTO lojaAtivaDTO : lojasAtivasDTO) {
47
                        TempoRealLojaDTO tempoRealLojaDTO = new TempoRealLojaDTO();
48
                        tempoRealLojaDTO.setLojaDTO(lojaAtivaDTO);
49
 
50
                        tempoRealLojaDTO.setQuantidadeTotalVendas(vendaService.obterQuantidadeDeVendasPorLojaEePeriodo(lojaAtivaDTO.getSequencialLoja(), DataUtils.getDataAtual(), DataUtils.getDataAtual()));
51
 
52
                        /******/
53
                        lojasTempoRealDTO.add(tempoRealLojaDTO);
54
                }
55
                tempoReal.setListaTempoRealLojaDTO(lojasTempoRealDTO);
56
                return tempoReal;
57
        }
58
 
59
}
60
 
61
/*
62
@Override
63
public AcompanhamentoDTO consultarConsolidacaoDoDia() {
64
        AcompanhamentoDTO consolidado = new AcompanhamentoDTO();
65
        List<ConsolidadoVendasLojaDTO> listaLojaDoDiaDTO = new ArrayList<ConsolidadoVendasLojaDTO>();
66
        List<Loja> lojas = lojaService.listarLojasAtivas();
67
 
68
        for (Loja loja : lojas) {
69
                ConsolidadoVendasLojaDTO consolidadoVendasLoja = new ConsolidadoVendasLojaDTO();
70
                consolidadoVendasLoja.setLoja(loja);
71
                Venda venda = new Venda(loja, null);
72
                Integer quantidadeVendas = vendaService.obterQuantidadeDeVendasPorLojaEePeriodo(venda, DataUtils.getDataAtual(), DataUtils.getDataAtual());
73
                consolidado.adicionarQuantidadeVendas(quantidadeVendas);
74
                consolidadoVendasLoja.setQuantidadeTotalVendas(quantidadeVendas);
75
 
76
                Double valorVendas = vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(loja, DataUtils.getDataAtual(), DataUtils.getDataAtual());
77
                ParametrosConsultaVendasDTO parametrosConsultaVendas = new ParametrosConsultaVendasDTO();
78
                parametrosConsultaVendas.setLoja(loja);
79
                parametrosConsultaVendas.setDataInicial(DataUtils.getDataAtual());
80
                parametrosConsultaVendas.setDataFinal(DataUtils.getDataAtual());
81
                valorVendas = valorVendas - vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodoServicos(parametrosConsultaVendas);
82
                consolidado.adicionarValorVendas(valorVendas);
83
                consolidadoVendasLoja.setValorTotalVendas(valorVendas);
84
 
85
                parametrosConsultaVendas.setDataInicial(DataUtils.getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAtual()));
86
        parametrosConsultaVendas.setDataFinal(DataUtils.getDataComHorarioMaximo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -1)));
87
                Double totalVendasAnterioresDoMesAtual = vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendas);
88
                totalVendasAnterioresDoMesAtual = totalVendasAnterioresDoMesAtual - vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodoServicos(parametrosConsultaVendas);
89
                consolidadoVendasLoja.setValorTotalVendasAnterioresDoMesAtual(totalVendasAnterioresDoMesAtual);
90
 
91
                Double valorMetaMensalLoja = consultarMetaMensal(loja);
92
                consolidadoVendasLoja.setValorMetaMensal(valorMetaMensalLoja);
93
                consolidado.adicionarValorMeta(valorMetaMensalLoja);
94
 
95
                consolidadoVendasLoja.setIndicadorLojaAberta(aberturaLojaService.consultarAberturaLoja(DataUtils.getDataAtual(), loja) != null);
96
                venda.setTipoSituacao(TipoSituacaoVenda.NOVO.getValor());
97
                consolidadoVendasLoja.setIndicadorVendasNovas(vendaService.obterQuantidadeDeVendasPorLojaEePeriodo(venda, DataUtils.getDataAtual(), DataUtils.getDataAtual()) > 0);
98
 
99
                listaLojaDoDiaDTO.add(consolidadoVendasLoja);
100
        }
101
 
102
        ConsolidadoVendasLojaDTO consolidadoVendasLojaAssistencia = new ConsolidadoVendasLojaDTO();
103
        Loja lojaAssistencia = new Loja();
104
        lojaAssistencia.setDescricao("ASSISTÊNCIA");
105
        consolidadoVendasLojaAssistencia.setLoja(lojaAssistencia);
106
        ParametrosConsultaVendasDTO parametrosConsultaVendas = new ParametrosConsultaVendasDTO();
107
        parametrosConsultaVendas.setDataInicial(DataUtils.getDataAtual());
108
        parametrosConsultaVendas.setDataFinal(DataUtils.getDataAtual());
109
        consolidadoVendasLojaAssistencia.setValorTotalVendas(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodoServicos(parametrosConsultaVendas));
110
        consolidadoVendasLojaAssistencia.setIndicadorLojaAberta(true);
111
        listaLojaDoDiaDTO.add(consolidadoVendasLojaAssistencia);
112
 
113
        consolidado.setListaLojaDoDiaDTO(new ArrayList<ConsolidadoVendasLojaDTO>(ordenador.ordenar(listaLojaDoDiaDTO)));
114
        consolidado.setValorTotalVendasMes(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(null, DataUtils.getPrimeiroDiaDoMesAtual(), DataUtils.getUltimoDiaDoMesAtual()));
115
        consolidado.setQuantidadeTotalPagamentos(pagamentoService.quantidadePagamentosEmAberto(null));
116
        consolidado.setQuantidadeTotalPendencias(pendenciaService.quantidadePendenciasNaoFinalizadas(null));
117
 
118
        Date diaDoMesPassado = DataUtils.acrescentarMeses(DataUtils.getDataAtual(), -1);
119
        consolidado.setValorTotalVendasDoDiaMesPassado(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(null, diaDoMesPassado, diaDoMesPassado));
120
        consolidado.setValorTotalVendasMesPassado(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(null, DataUtils.getPrimeiroDiaDoMesAnterior(), diaDoMesPassado));
121
 
122
        return consolidado;
123
}
124
 
125
@Override
126
public ConsolidadoGestaoDTO consultarConsolidadoGestaoDTO() {
127
        ConsolidadoGestaoDTO consolidado = new ConsolidadoGestaoDTO();
128
        consolidado.setQuantidadeTotalVendas(vendaService.obterQuantidadeDeVendasPorLojaEePeriodo(null, DataUtils.getDataAtual(), DataUtils.getDataAtual()));
129
        consolidado.setValorTotalVendasMes(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(null, DataUtils.getPrimeiroDiaDoMesAtual(), DataUtils.getUltimoDiaDoMesAtual()));
130
        consolidado.setQuantidadeTotalEstoque(produtoService.quantidadeTotalEstoque(null));
131
        consolidado.setValorTotalEstoque(produtoService.valorTotalEstoque(null, null));
132
        return consolidado;
133
}
134
 
135
@Override
136
public LineChartModel consultarGrafico(Date primeiroMes, Date segundoMes) {
137
        LineChartModel graficoAcumulado = new LineChartModel();
138
        String mesAtual = "" + (DataUtils.obterCalendario(primeiroMes).get(Calendar.MONTH)+1);
139
        String anoAtual = "" + DataUtils.obterCalendario(primeiroMes).get(Calendar.YEAR);
140
        String anoAnterior = "" + DataUtils.obterCalendario(segundoMes).get(Calendar.YEAR);
141
        String mesAnterior = "" + (DataUtils.obterCalendario(segundoMes).get(Calendar.MONTH)+1);
142
        if (mesAnterior.equals("0")) {
143
                mesAnterior = "12";
144
                anoAnterior = "" + (DataUtils.obterCalendario(DataUtils.getDataAtual()).get(Calendar.YEAR)-1);
145
        }
146
        if (mesAtual.length()==1) {
147
                mesAtual = "0" + mesAtual;
148
        }
149
        if (mesAnterior.length()==1) {
150
                mesAnterior = "0" + mesAnterior;
151
        }
152
 
153
        GraficoAcumuladoDTO graficoAtual = vendaService.consultarGrafico(mesAtual, anoAtual);
154
        LineChartSeries series1 = preencherLinhaAcumulando(graficoAtual, mesAtual, anoAtual);
155
    series1.setLabel("ATUAL");
156
 
157
    GraficoAcumuladoDTO graficoAnterior = vendaService.consultarGrafico(mesAnterior, anoAnterior);
158
    LineChartSeries series2 = preencherLinhaAcumulando(graficoAnterior, mesAtual, anoAtual);
159
    series2.setLabel("ANTERIOR");
160
 
161
    graficoAcumulado.addSeries(series1);
162
    graficoAcumulado.addSeries(series2);
163
 
164
    graficoAcumulado.setTitle("");
165
    graficoAcumulado.setZoom(true);
166
    graficoAcumulado.setShowPointLabels(true);
167
    graficoAcumulado.getAxis(AxisType.Y).setLabel("VALORES R$");
168
    DateAxis axis = new DateAxis("DATAS");
169
    axis.setTickAngle(-50);
170
    axis.setMin(anoAtual + "-" + mesAtual + "-" + "01");
171
    axis.setMax(anoAtual + "-" + mesAtual + "-" + "31");
172
    axis.setTickFormat("%b %#d, 20%y");
173
    graficoAcumulado.getAxes().put(AxisType.X, axis);
174
    return graficoAcumulado;
175
}
176
 
177
private LineChartSeries preencherLinhaAcumulando(GraficoAcumuladoDTO graficoLinha, String mes, String ano) {
178
        LineChartSeries linha = new LineChartSeries();
179
        Double valorAcumulado = new Double(0.0);
180
        valorAcumulado = valorAcumulado + graficoLinha.getDIA_01();
181
    linha.set(ano + "-" + mes + "-" + "01", valorAcumulado);
182
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_02();
183
    linha.set(ano + "-" + mes + "-" + "02", valorAcumulado);
184
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_03();
185
    linha.set(ano + "-" + mes + "-" + "03", valorAcumulado);
186
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_04();
187
    linha.set(ano + "-" + mes + "-" + "04", valorAcumulado);
188
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_05();
189
    linha.set(ano + "-" + mes + "-" + "05", valorAcumulado);
190
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_06();
191
    linha.set(ano + "-" + mes + "-" + "06", valorAcumulado);
192
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_07();
193
    linha.set(ano + "-" + mes + "-" + "07", valorAcumulado);
194
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_08();
195
    linha.set(ano + "-" + mes + "-" + "08", valorAcumulado);
196
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_09();
197
    linha.set(ano + "-" + mes + "-" + "09", valorAcumulado);
198
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_10();
199
    linha.set(ano + "-" + mes + "-" + "10", valorAcumulado);
200
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_11();
201
    linha.set(ano + "-" + mes + "-" + "11", valorAcumulado);
202
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_12();
203
    linha.set(ano + "-" + mes + "-" + "12", valorAcumulado);
204
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_13();
205
    linha.set(ano + "-" + mes + "-" + "13", valorAcumulado);
206
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_14();
207
    linha.set(ano + "-" + mes + "-" + "14", valorAcumulado);
208
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_15();
209
    linha.set(ano + "-" + mes + "-" + "15", valorAcumulado);
210
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_16();
211
    linha.set(ano + "-" + mes + "-" + "16", valorAcumulado);
212
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_17();
213
    linha.set(ano + "-" + mes + "-" + "17", valorAcumulado);
214
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_18();
215
    linha.set(ano + "-" + mes + "-" + "18", valorAcumulado);
216
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_19();
217
    linha.set(ano + "-" + mes + "-" + "19", valorAcumulado);
218
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_20();
219
    linha.set(ano + "-" + mes + "-" + "20", valorAcumulado);
220
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_21();
221
    linha.set(ano + "-" + mes + "-" + "21", valorAcumulado);
222
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_22();
223
    linha.set(ano + "-" + mes + "-" + "22", valorAcumulado);
224
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_23();
225
    linha.set(ano + "-" + mes + "-" + "23", valorAcumulado);
226
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_24();
227
    linha.set(ano + "-" + mes + "-" + "24", valorAcumulado);
228
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_25();
229
    linha.set(ano + "-" + mes + "-" + "25", valorAcumulado);
230
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_26();
231
    linha.set(ano + "-" + mes + "-" + "26", valorAcumulado);
232
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_27();
233
    linha.set(ano + "-" + mes + "-" + "27", valorAcumulado);
234
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_28();
235
    linha.set(ano + "-" + mes + "-" + "28", valorAcumulado);
236
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_29();
237
    linha.set(ano + "-" + mes + "-" + "29", valorAcumulado);
238
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_30();
239
    linha.set(ano + "-" + mes + "-" + "30", valorAcumulado);
240
    valorAcumulado = valorAcumulado + graficoLinha.getDIA_31();
241
    linha.set(ano + "-" + mes + "-" + "31", valorAcumulado);
242
    return linha;
243
}
244
 
245
@Override
246
public ProvisaoCaixaDTO consultarGraficoCaixa(Date dataInicial, Date dataFinal) {
247
        LineChartModel graficoAcumulado = new LineChartModel();
248
        String mes = "" + (DataUtils.obterCalendario(dataInicial).get(Calendar.MONTH)+1);
249
        String ano = "" + DataUtils.obterCalendario(dataInicial).get(Calendar.YEAR);
250
        if (mes.length()==1) {
251
                mes = "0" + mes;
252
        }
253
 
254
        Double caixa = contaBancariaService.consultarSaldo(null);
255
        List<DetalhamentoCaixaDTO> graficoAtual = fluxoDeCaixaService.consultarGraficoCaixa(caixa, dataInicial, dataFinal);
256
        LineChartSeries series1 = preencherLinha(graficoAtual, mes, ano);
257
    series1.setLabel("ATUAL");
258
 
259
    graficoAcumulado.addSeries(series1);
260
 
261
    graficoAcumulado.setTitle("");
262
    graficoAcumulado.setZoom(true);
263
    graficoAcumulado.setShowPointLabels(true);
264
    graficoAcumulado.getAxis(AxisType.Y).setLabel("VALORES R$");
265
    DateAxis axis = new DateAxis("DATAS");
266
    axis.setTickAngle(-50);
267
    axis.setMin(DataUtils.converterDataParaStringNoFormato(dataInicial, "yyyy - MM - dd"));
268
    axis.setMax(DataUtils.converterDataParaStringNoFormato(dataFinal, "yyyy - MM - dd"));
269
//    axis.setMin(ano + "-" + mes + "-" + "01");
270
//    axis.setMax(ano + "-" + mes + "-" + graficoAtual.size());
271
    axis.setTickFormat("%b %#d");
272
    graficoAcumulado.getAxes().put(AxisType.X, axis);
273
 
274
    ProvisaoCaixaDTO provisao = new ProvisaoCaixaDTO();
275
    provisao.setGrafico(graficoAcumulado);
276
    provisao.setDetalhamentos(graficoAtual);
277
    return provisao;
278
}
279
 
280
private LineChartSeries preencherLinha(List<DetalhamentoCaixaDTO> detalhamentos, String mes, String ano) {
281
        LineChartSeries linha = new LineChartSeries();
282
//      Integer indice = 1;
283
//      String dia = "";
284
        for (DetalhamentoCaixaDTO detalhamento : detalhamentos) {
285
//              if (indice < 10) {
286
//                      dia = "0" + indice;
287
//              } else {
288
//                      dia = "" + indice;
289
//              }
290
//              indice++;
291
//              linha.set(ano + "-" + mes + "-" + dia, detalhamento.getSaldo());
292
                linha.set(detalhamento.dataFormatada(), detalhamento.getSaldo());
293
        }
294
    return linha;
295
}
296
 
297
@Override
298
public FluxoDeCaixaDTO consultarFluxoDeCaixa(FluxoDeCaixaDTO fluxoDeCaixa) {
299
        return fluxoDeCaixaService.consultarFluxoDeCaixa(fluxoDeCaixa);
300
}
301
 
302
@Override
303
public List<FluxoDeCaixaCategoriaDTO> consultarFluxoDeCaixaPorCategoria(FluxoDeCaixaDTO fluxoDeCaixa, String tipoCategoria) {
304
        return fluxoDeCaixaService.consultarFluxoDeCaixaPorCategoria(fluxoDeCaixa, tipoCategoria);
305
}
306
 
307
@Override
308
public ReceitaDTO consultarReceita(ReceitaDTO receita) {
309
        ParametrosConsultaVendasDTO parametrosConsultaVendas = new ParametrosConsultaVendasDTO();
310
        parametrosConsultaVendas.setDataInicial(receita.getDataInicial());
311
        parametrosConsultaVendas.setDataFinal(receita.getDataFinal());
312
        parametrosConsultaVendas.setLoja(receita.getLoja());
313
        parametrosConsultaVendas.setVendedor(receita.getVendedor());
314
        parametrosConsultaVendas.setIndicacao(receita.getIndicacao());
315
 
316
        receita.setValorTotalBruto(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendas));
317
        receita.setValorTotalLiquido(vendaService.obterValorTotalLiquidoDeVendasPorLojaEePeriodo(parametrosConsultaVendas));
318
        receita.setValorTotalBrutoPorFormasDePagamento(vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodoEeFormasDePagamento(parametrosConsultaVendas, verificarSelecoesFormasPagamento(receita)));
319
        receita.setQuantidadeTotalEstoque(produtoService.quantidadeTotalEstoque(receita.getLoja()));
320
        receita.setValorTotalEstoque(produtoService.valorTotalEstoque(receita.getLoja(), null));
321
        receita.setQuantidadeProdutosVendidos(vendaService.obterQuantidadeProdutosVendidosPorLojaEePeriodoNaoVivo(parametrosConsultaVendas));
322
        receita.setValorProdutosUtilizados(vendaService.obterValorProdutosUtilizadosEmVendasPorLojaEePeriodo(parametrosConsultaVendas));
323
        receita.setProcessado(true);
324
        return receita;
325
}
326
 
327
private List<FormaPagamento> verificarSelecoesFormasPagamento(ReceitaDTO receita) {
328
        List<FormaPagamento> formas = new ArrayList<FormaPagamento>();
329
        List<FormaPagamento> formasSelecionadas = Arrays.asList(receita.getFormasDePagamento());
330
        if (VerificadorUtil.naoEstaNulo(receita.getFormasDePagamento())) {
331
                for (FormaPagamento forma : formasSelecionadas) {
332
                        if (VerificadorUtil.naoEstaNulo(forma)) {
333
                                formas.add(forma);
334
                        }
335
                }
336
        }
337
        return formas;
338
}
339
 
340
@Override
341
public DreDTO consultarDRE(DreDTO dre) {
342
        ParametrosConsultaVendasDTO parametrosConsultaVendas = new ParametrosConsultaVendasDTO();
343
        parametrosConsultaVendas.setDataInicial(dre.getDataInicial());
344
        parametrosConsultaVendas.setDataFinal(dre.getDataFinal());
345
        parametrosConsultaVendas.setLojas(dre.getLojasSelecionadas());
346
 
347
        List<DreItemDTO> itens = new ArrayList<DreItemDTO>();
348
        DreItemDTO itemDRE = new DreItemDTO("RECEITA OPERACIONAL BRUTA"); //VENDAS DE PRODUTOS, MERCADORIAS E SERVIÇOS
349
        Double valor = new Double(0.0);
350
        vendaService.obterValorTotalBrutoDeVendasPorLojaEePeriodo(parametrosConsultaVendas);
351
 
352
        itemDRE.setValor(valor);
353
        itens.add(itemDRE);
354
        dre.setItens(itens);
355
        return dre;
356
}
357
 
358
private Double consultarMetaMensal(Loja loja) {
359
        return avaliacaoLojaService.consultarValorMetaMensalLojaPelaData(loja.getSequencial(), DataUtils.getDataAtual());
360
}
361
 
362
*/