Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

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

import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.AlertasGeralDTO;
import br.com.ec.domain.dto.AlertasLogisticaComprasDTO;
import br.com.ec.domain.dto.RankingComprasTransferenciasDTO;
import br.com.ec.domain.dto.RankingModeloDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaModelosMaisVendidosDTO;
import br.com.ec.domain.model.tipos.TipoProduto;
import br.com.ec.domain.service.AlertasService;
import br.com.ec.domain.service.VendaService;
import br.com.ec.web.generic.AbstractBean;

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

        private static final long serialVersionUID = 1L;
       
        private AlertasService alertasService;
        private VendaService vendaService;
       
        private Integer tempoDeEstoqueParaAlerta = 30;

        @Inject
        public AlertasComprasBean(AlertasService alertasService, VendaService vendaService) {
                this.alertasService = alertasService;
                this.vendaService = vendaService;
        }

        @Override
        public GenericService<AlertasGeralDTO> getService() {
                return null;
        }

        @Override
        public AlertasGeralDTO getId() {
                return null;
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new AlertasGeralDTO());
                getEntidade().setQuantidadeDiasVendas(90);
                getEntidade().setTempoDeEstoqueParaAlerta(30);
                getEntidade().setAdicionarModelosFavoritosSemVendas(true);
                getEntidade().setTiposProdutoSelecionados(new ArrayList<TipoProduto>());
        }
       
        @PostConstruct
        private void iniciarConsolidacoes() {
                limparEntidade();
        }
       
        public Integer getTempoDeEstoqueParaAlerta() {
                return tempoDeEstoqueParaAlerta;
        }
        public void setTempoDeEstoqueParaAlerta(Integer tempoDeEstoqueParaAlerta) {
                this.tempoDeEstoqueParaAlerta = tempoDeEstoqueParaAlerta;
        }
       
        public void verificarAlertasCapas() {
                limparEntidade();
               
                // CONSULTAR MODELOS MAIS VENDIDOS
                List<RankingModeloDTO> modelosMaisVendidos = new ArrayList<RankingModeloDTO>();
                ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta = new ParametrosConsultaModelosMaisVendidosDTO();
                parametrosConsulta.setDataFinal(DataUtils.getDataAtual());
                parametrosConsulta.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), getEntidade().getQuantidadeDiasVendas()*-1));
                modelosMaisVendidos.addAll(vendaService.consultarRankingModelos(parametrosConsulta, getEntidade().getAdicionarModelosFavoritosSemVendas()));
               
                List<RankingComprasTransferenciasDTO> rankingComprasTransferencias = new ArrayList<RankingComprasTransferenciasDTO>();
                rankingComprasTransferencias.addAll(vendaService.consultarRankingComprasTransferencias(getEntidade().getQuantidadeDiasVendas(),
                                getEntidade().getTempoDeEstoqueParaAlerta(), modelosMaisVendidos, false));
               
                AlertasLogisticaComprasDTO alertasLogisticaComprasDTO = new AlertasLogisticaComprasDTO();
                alertasLogisticaComprasDTO.setQuantidadeAlertasModelosPossiveis(modelosMaisVendidos.size());
                alertasLogisticaComprasDTO.setRankingsComprasTransferenciasDTO(rankingComprasTransferencias);
                getEntidade().setAlertasComprasCapasDTO(alertasLogisticaComprasDTO);
        }
       
        public void verificarAlertas() {
                limparEntidade();
                getEntidade().setTempoDeEstoqueParaAlerta(getTempoDeEstoqueParaAlerta());
                getEntidade().setAlertasComprasDTO(alertasService.consultarAlertasComprasGeral(getEntidade()));
        }
       
}