Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.controller.managedbean;

import java.io.Serializable;
import java.util.Date;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.AcompanhamentoDTO;
import br.com.ec.domain.model.tipos.TipoSituacaoPedido;
import br.com.ec.domain.service.acompanhamento.AcompanhamentoService;
import br.com.ec.domain.service.pedido.PedidoService;
import br.com.ec.web.generic.AbstractBean;

@Named
@Scope("view")
public class AcompanhamentoBean extends AbstractBean<AcompanhamentoDTO> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private AcompanhamentoService acompanhamentoService;
        private PedidoService pedidoService;
       
        private AcompanhamentoDTO acompanhamentoDia;
       
        @Inject
        public AcompanhamentoBean(AcompanhamentoService acompanhamentoService, PedidoService pedidoService) {
                this.acompanhamentoService = acompanhamentoService;
                this.pedidoService = pedidoService;
        }
       
        @PostConstruct
        private void iniciarConsolidacoes() {
                setAcompanhamentoDia(acompanhamentoService.consultarConsolidacaoDoDia());
                getAcompanhamentoDia().setQuantidadePedidosEntrarEmContato(pedidoService.obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.ENTRAR_EM_CONTATO.getValor()));
                getAcompanhamentoDia().setQuantidadePedidosNovos(pedidoService.obterQuantidadePedidosPorSituacao(null, TipoSituacaoPedido.NOVO.getValor()));
                preencherInformacoesPedidos();
        }
       
        private void preencherInformacoesPedidos() {
                Date diaSeteDiasAntes = DataUtils.acrescentarDias(DataUtils.getDataAtual(), -7);
                Integer pedidosFinalizados = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.FINALIZADO.getValor(), diaSeteDiasAntes, DataUtils.getDataAtual());
                Integer pedidosFinalizadosComVendas = pedidoService.obterQuantidadePedidosPorSituacaoEePeriodo(null, TipoSituacaoPedido.FINALIZADO_COM_VENDAS.getValor(), diaSeteDiasAntes, DataUtils.getDataAtual());
                getAcompanhamentoDia().setQuantidadePedidosAtendidosUltimosSeteDias(pedidosFinalizados + pedidosFinalizadosComVendas);
        }

        @Override
        public void preCarregamento() {
                entidade = new AcompanhamentoDTO();
                parametrosConsulta = new ParametrosConsulta<AcompanhamentoDTO>();
                parametrosConsulta.setEntidade(entidade);
        }
       
        @Override
        public void limparEntidade() {
                AcompanhamentoDTO consolidado = new AcompanhamentoDTO();
                setEntidade(consolidado);
        }

        @Override
        public GenericService<AcompanhamentoDTO> getService() {
                return null;
        }
       
        @Override
        public AcompanhamentoDTO getEntidade() {
                return entidade;
        }

        @Override
        public AcompanhamentoDTO getId() {
                return getEntidade();
        }
       
        public AcompanhamentoDTO getAcompanhamentoDia() {
                return acompanhamentoDia;
        }
        public void setAcompanhamentoDia(AcompanhamentoDTO consolidadoDia) {
                this.acompanhamentoDia = consolidadoDia;
        }
       
}