Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
200 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.Date;
5
 
6
import javax.annotation.PostConstruct;
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.springframework.context.annotation.Scope;
11
 
12
import br.com.ec.core.consulta.ParametrosConsulta;
13
import br.com.ec.core.generic.GenericService;
14
import br.com.ec.core.util.DataUtils;
15
import br.com.ec.domain.dto.DashboardComercialDTO;
16
import br.com.ec.domain.model.Loja;
17
import br.com.ec.domain.model.tipos.TipoPedido;
18
import br.com.ec.domain.model.tipos.TipoSituacaoPedido;
19
import br.com.ec.domain.service.pedido.PedidoService;
20
import br.com.ec.domain.service.produto.ProdutoService;
21
import br.com.ec.domain.shared.ConstantesSEC;
22
import br.com.ec.web.generic.AbstractBean;
23
 
24
@Named
25
@Scope("view")
26
public class DashboardComercialBean extends AbstractBean<DashboardComercialDTO> implements Serializable {
27
 
28
        private static final long serialVersionUID = 1L;
29
 
30
        private PedidoService pedidoService;
31
        private ProdutoService produtoService;
32
 
33
        private DashboardComercialDTO acompanhamentoDia;
34
 
35
        @Inject
36
        public DashboardComercialBean(PedidoService pedidoService, ProdutoService produtoService) {
37
                this.pedidoService = pedidoService;
38
                this.produtoService = produtoService;
39
        }
40
 
41
        @PostConstruct
42
        private void iniciarDashboard() {
43
                Integer quantidePedidosNovos = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.NOVO.getValor());
44
                Integer quantidePedidosPendente = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PENDENTE.getValor());
45
                Integer quantidePedidosPendenteCompras = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PENDENTE_ANALISE_COMPRAS.getValor());
46
                Integer quantidePedidosAguardandoRetornoCliente = pedidoService.obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.AGUARDANDO_RETORNO_CLIENTE.getValor());
47
                Integer quantidePedidosAguardandoCompras = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PEDIDO_EM_COMPRAS.getValor());
48
                Integer quantidePedidosProdutoEmTransferencia = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PEDIDO_EM_TRANSFERENCIA.getValor());
49
                Integer quantidePedidosAguardandoFinalizacaoCliente = pedidoService.obterQuantidadePedidosPorSituacao(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.AGUARDANDO_FINALIZACAO_CLIENTE.getValor());
50
                Integer quantidePedidosEntrarEmContato = pedidoService.obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.ENTRAR_EM_CONTATO.getValor());
51
 
52
                Date trintaDiasAntes = DataUtils.acrescentarDias(DataUtils.getDataAtual(), -30);
53
                Integer quantidePedidosFinalizadoTrintaDias = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.FINALIZADO.getValor(), trintaDiasAntes, DataUtils.getDataAtual());
54
                Integer quantidePedidosFinalizadoComVendasTrintaDias = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.FINALIZADO_COM_VENDAS.getValor(), trintaDiasAntes, DataUtils.getDataAtual());
55
 
56
                Date seteDiasAntes = DataUtils.acrescentarDias(DataUtils.getDataAtual(), -7);
57
                Integer pedidosFinalizadosSeteDias = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.FINALIZADO.getValor(), seteDiasAntes, DataUtils.getDataAtual());
58
                Integer pedidosFinalizadosComVendasSeteDias = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.FINALIZADO_COM_VENDAS.getValor(), seteDiasAntes, DataUtils.getDataAtual());
59
 
60
                //INDICADORES
61
                setAcompanhamentoDia(new DashboardComercialDTO());
62
                getAcompanhamentoDia().setQuantidadePedidosNovos(quantidePedidosNovos);
63
                getAcompanhamentoDia().setQuantidadePedidosEntrarEmContato(quantidePedidosEntrarEmContato);
64
                getAcompanhamentoDia().setQuantidadePedidosEmAndamento(quantidePedidosPendenteCompras + quantidePedidosAguardandoCompras + quantidePedidosProdutoEmTransferencia + quantidePedidosAguardandoFinalizacaoCliente);
65
                getAcompanhamentoDia().setQuantidadePedidosPendentes(quantidePedidosPendente);
66
                getAcompanhamentoDia().setQuantidadePedidosAguardandoRetornoCliente(quantidePedidosAguardandoRetornoCliente);
67
                getAcompanhamentoDia().setQuantidadePedidosFinalizadosSemVendas(quantidePedidosFinalizadoTrintaDias);
68
                getAcompanhamentoDia().setQuantidadePedidosFinalizadosComVendas(quantidePedidosFinalizadoComVendasTrintaDias);
69
                getAcompanhamentoDia().setQuantidadePedidosAtendidosUltimosSeteDias(pedidosFinalizadosSeteDias + pedidosFinalizadosComVendasSeteDias);
70
 
71
                getAcompanhamentoDia().setQuantidadeRetirarDoSite(produtoService.quantidadeProdutosParaRetirarDoOnlineMatriz());
72
                getAcompanhamentoDia().setQuantidadeRetirarDoShoplog(produtoService.quantidadeProdutosParaRetirarDoOnlineShoplog());
73
                getAcompanhamentoDia().setQuantidadeAdicionadosSiteDiario(produtoService.quantidadeProdutosAdicionadosSite(DataUtils.getDataAtual(), DataUtils.getDataAtual()));
74
                getAcompanhamentoDia().setQuantidadeAdicionadosSiteSemanal(produtoService.quantidadeProdutosAdicionadosSite(seteDiasAntes, DataUtils.getDataAtual()));
75
                getAcompanhamentoDia().setQuantidadeAdicionadosSiteMensal(produtoService.quantidadeProdutosAdicionadosSite(DataUtils.getPrimeiroDiaDoMesAtual(), DataUtils.getUltimoDiaDoMesAtual()));
76
                getAcompanhamentoDia().setQuantidadeProdutosOnline(produtoService.quantidadeProdutosOnline());
77
                getAcompanhamentoDia().setQuantidadeProdutosFavoritosOffline(produtoService.quantidadeProdutosFavoritosOffline(new Loja(ConstantesSEC.SEQUENCIAL_MATRIZ_ESTOQUE_9)));
78
 
79
                // ALERTAS
80
                Date tresDiasAntes = DataUtils.acrescentarDias(DataUtils.getDataAtual(), -3);
81
                Integer pedidosAlertasNovosComTresDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.NOVO.getValor(), null, tresDiasAntes);
82
                Integer pedidosAlertasEntrarEmContatoComTresDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.ENTRAR_EM_CONTATO.getValor(), null, tresDiasAntes);
83
                Integer pedidosAlertasPendentesComSeteDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PENDENTE.getValor(), null, seteDiasAntes);
84
                Integer pedidosAlertasEmTransferenciaComSeteDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(TipoPedido.RESERVA.getValor(), TipoSituacaoPedido.PEDIDO_EM_TRANSFERENCIA.getValor(), null, seteDiasAntes);
85
                Integer pedidosAlertasAguardandoRetornoClienteComSeteDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.AGUARDANDO_RETORNO_CLIENTE.getValor(), null, seteDiasAntes);
86
                Integer pedidosAlertasAguardandoFinalizacaoClienteComSeteDiasPassados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.AGUARDANDO_FINALIZACAO_CLIENTE.getValor(), null, seteDiasAntes);
87
 
88
                getAcompanhamentoDia().setQuantidadeAlertaPedidosNovos(pedidosAlertasNovosComTresDiasPassados);
89
                getAcompanhamentoDia().setQuantidadeAlertaPedidosEntrarEmContato(pedidosAlertasEntrarEmContatoComTresDiasPassados);
90
                getAcompanhamentoDia().setQuantidadeAlertaPedidosPendentes(pedidosAlertasPendentesComSeteDiasPassados);
91
                getAcompanhamentoDia().setQuantidadeAlertaPedidosEmTransferencia(pedidosAlertasEmTransferenciaComSeteDiasPassados);
92
                getAcompanhamentoDia().setQuantidadeAlertaPedidosAguardandoRetornoCliente(pedidosAlertasAguardandoRetornoClienteComSeteDiasPassados);
93
                getAcompanhamentoDia().setQuantidadeAlertaPedidosAguardandoFinalizacaoCliente(pedidosAlertasAguardandoFinalizacaoClienteComSeteDiasPassados);
94
        }
95
 
96
        @Override
97
        public void preCarregamento() {
98
                entidade = new DashboardComercialDTO();
99
                parametrosConsulta = new ParametrosConsulta<DashboardComercialDTO>();
100
                parametrosConsulta.setEntidade(entidade);
101
        }
102
 
103
        @Override
104
        public void limparEntidade() {
105
                DashboardComercialDTO consolidado = new DashboardComercialDTO();
106
                setEntidade(consolidado);
107
        }
108
 
109
        @Override
110
        public GenericService<DashboardComercialDTO> getService() {
111
                return null;
112
        }
113
 
114
        @Override
115
        public DashboardComercialDTO getEntidade() {
116
                return entidade;
117
        }
118
 
119
        @Override
120
        public DashboardComercialDTO getId() {
121
                return getEntidade();
122
        }
123
 
124
        public DashboardComercialDTO getAcompanhamentoDia() {
125
                return acompanhamentoDia;
126
        }
127
        public void setAcompanhamentoDia(DashboardComercialDTO consolidadoDia) {
128
                this.acompanhamentoDia = consolidadoDia;
129
        }
130
 
131
}