Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.com.ec.controller;

import java.io.Serializable;
import java.util.ArrayList;
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.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.service.VendaService;
import br.com.ec.web.generic.AbstractBean;

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

        private static final long serialVersionUID = 1L;
       
        private Boolean adicionarModelosFavoritosSemVendas;
        private Integer quantidadeDiasVendas = 0;
        private Integer quantidadeDiasParaAlerta = 0;
        private VendaService vendaService;

        @Inject
        public AlertasComprasCapaBean(VendaService vendaService) {
                this.vendaService = vendaService;
        }

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

        @Override
        public AlertasLogisticaComprasDTO getId() {
                return null;
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new AlertasLogisticaComprasDTO());
                setQuantidadeDiasVendas(90);
                setQuantidadeDiasParaAlerta(30);
                setAdicionarModelosFavoritosSemVendas(false);
        }
       
        @PostConstruct
        private void iniciarConsolidacoes() {
                limparEntidade();
        }
       
        public Boolean getAdicionarModelosFavoritosSemVendas() {
                return adicionarModelosFavoritosSemVendas;
        }
        public void setAdicionarModelosFavoritosSemVendas(Boolean adicionarModelosFavoritosSemVendas) {
                this.adicionarModelosFavoritosSemVendas = adicionarModelosFavoritosSemVendas;
        }
       
        public Integer getQuantidadeDiasVendas() {
                return quantidadeDiasVendas;
        }
        public void setQuantidadeDiasVendas(Integer quantidadeDiasVendas) {
                this.quantidadeDiasVendas = quantidadeDiasVendas;
        }
       
        public Integer getQuantidadeDiasParaAlerta() {
                return quantidadeDiasParaAlerta;
        }
        public void setQuantidadeDiasParaAlerta(Integer quantidadeDiasParaAlerta) {
                this.quantidadeDiasParaAlerta = quantidadeDiasParaAlerta;
        }
       
        public void verificarAlertas() {
                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(), quantidadeDiasVendas*-1));
                modelosMaisVendidos.addAll(vendaService.consultarRankingModelos(parametrosConsulta, adicionarModelosFavoritosSemVendas));
               
                List<RankingComprasTransferenciasDTO> rankingComprasTransferencias = new ArrayList<RankingComprasTransferenciasDTO>();
                rankingComprasTransferencias.addAll(vendaService.consultarRankingComprasTransferencias(getQuantidadeDiasVendas(), getQuantidadeDiasParaAlerta(), modelosMaisVendidos, false));
                getEntidade().setQuantidadeAlertasModelosPossiveis(modelosMaisVendidos.size());
                getEntidade().setRankingsComprasTransferenciasDTO(rankingComprasTransferencias);
        }
       
}