package br.com.ec.controller;
import java.io.Serializable;
import java.util.List;
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.VerificadorUtil;
import br.com.ec.domain.dto.FormaPagamentoDTO;
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
import br.com.ec.domain.dto.consulta.ParametrosPeriodoDTO;
import br.com.ec.domain.dto.grafico.GraficoBarraDTO;
import br.com.ec.domain.dto.grafico.GraficoPizzaDTO;
import br.com.ec.domain.model.tipos.TipoProduto;
import br.com.ec.domain.service.GraficoService;
import br.com.ec.domain.service.VendaService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class RelatorioVendasBean
extends AbstractBean
<ParametrosConsultaVendasDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
/*
private List<FuncionarioDTO> listaFuncionariosDTO;
private Long sequencialFuncionarioSelecionado;
private FuncionarioDTO funcionarioSelecionado;
private FuncionarioService funcionarioService;
*/
private ParametrosPeriodoDTO parametrosPeriodoDTO
;
private Boolean graficoConsultado
;
private GraficoBarraDTO graficoVendas
;
private GraficoBarraDTO graficoPercentuaisMeta
;
private GraficoPizzaDTO graficoVendasPorFormasDePagamento
;
private Boolean comparativo
;
private ParametrosConsultaVendasDTO parametrosConsultaComparativo
;
private GraficoBarraDTO graficoVendasComparativo
;
private VendaService vendaService
;
private GraficoService graficoService
;
@Inject
public RelatorioVendasBean
(VendaService vendaService, GraficoService graficoService
) {
this.
vendaService = vendaService
;
this.
graficoService = graficoService
;
}
@
Override
public GenericService
<ParametrosConsultaVendasDTO
> getService
() {
return null;
}
@
Override
public ParametrosConsultaVendasDTO getId
() {
return null;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new ParametrosConsultaVendasDTO
());
setGraficoConsultado
(false);
setComparativo
(false);
setParametrosConsultaComparativo
(new ParametrosConsultaVendasDTO
());
}
public ParametrosPeriodoDTO getParametrosPeriodoDTO
() {
return parametrosPeriodoDTO
;
}
public void setParametrosPeriodoDTO
(ParametrosPeriodoDTO parametrosPeriodoDTO
) {
this.
parametrosPeriodoDTO = parametrosPeriodoDTO
;
}
public TipoProduto
[] getTiposProduto
() {
return TipoProduto.
values();
}
public Boolean getGraficoConsultado
() {
return graficoConsultado
;
}
public void setGraficoConsultado
(Boolean graficoConsultado
) {
this.
graficoConsultado = graficoConsultado
;
}
public GraficoBarraDTO getGraficoVendas
() {
return graficoVendas
;
}
public void setGraficoVendas
(GraficoBarraDTO graficoVendas
) {
this.
graficoVendas = graficoVendas
;
}
public GraficoBarraDTO getGraficoPercentuaisMeta
() {
return graficoPercentuaisMeta
;
}
public void setGraficoPercentuaisMeta
(GraficoBarraDTO graficoPercentuaisMeta
) {
this.
graficoPercentuaisMeta = graficoPercentuaisMeta
;
}
public GraficoPizzaDTO getGraficoVendasPorFormasDePagamento
() {
return graficoVendasPorFormasDePagamento
;
}
public void setGraficoVendasPorFormasDePagamento
(GraficoPizzaDTO graficoVendasPorFormasDePagamento
) {
this.
graficoVendasPorFormasDePagamento = graficoVendasPorFormasDePagamento
;
}
public Boolean getComparativo
() {
return comparativo
;
}
public void setComparativo
(Boolean comparativo
) {
this.
comparativo = comparativo
;
}
public ParametrosConsultaVendasDTO getParametrosConsultaComparativo
() {
return parametrosConsultaComparativo
;
}
public void setParametrosConsultaComparativo
(ParametrosConsultaVendasDTO parametrosConsultaComparativo
) {
this.
parametrosConsultaComparativo = parametrosConsultaComparativo
;
}
public GraficoBarraDTO getGraficoVendasComparativo
() {
return graficoVendasComparativo
;
}
public void setGraficoVendasComparativo
(GraficoBarraDTO graficoVendasComparativo
) {
this.
graficoVendasComparativo = graficoVendasComparativo
;
}
/**********************************/
public List<FormaPagamentoDTO
> getFormasDePagamentoDTO
() {
return FormaPagamentoDTO.
formasDePagamentoSemCupom();
}
public void gerarGraficos
() {
setGraficoConsultado
(true);
setGraficoVendas
(new GraficoBarraDTO
(getEntidade
()));
if (getComparativo
()) {
setGraficoVendas
(graficoService.
gerarGraficoVendas(getGraficoVendas
().
getParametrosConsulta(), getParametrosConsultaComparativo
()));
} else {
setGraficoVendas
(graficoService.
gerarGraficoVendas(getGraficoVendas
().
getParametrosConsulta(),
null));
}
if (VerificadorUtil.
naoEstaNulo(getEntidade
().
getVendedorSelecionado())) {
setGraficoPercentuaisMeta
(graficoService.
gerarGraficoPercentuaisMeta(getEntidade
()));
} else {
setGraficoPercentuaisMeta
(null);
}
// setGraficoVendasPorFormasDePagamento(graficoService.gerarGraficoVendasPorFormasDePagamento(getGraficoVendas().getParametrosConsulta()));
/*
BarChartModel graficoComparativoCustosLucro = funcionarioService.consultarGraficoComparativoCustosLucro(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO());
getFuncionarioSelecionado().setGraficoComparativoCustosLucro(graficoComparativoCustosLucro);
PieChartModel graficoTiposProdutos = funcionarioService.consultarGraficoTiposProdutos(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO(), Arrays.asList(getTiposProduto()));
getFuncionarioSelecionado().setGraficoTiposProdutos(graficoTiposProdutos);
PieChartModel graficoFormasPagamento = funcionarioService.consultarGraficoFormasPagamento(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO());
getFuncionarioSelecionado().setGraficoFormasPagamento(graficoFormasPagamento);
*/
}
}