package br.com.ec.controller;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.primefaces.model.charts.bar.BarChartModel;
import org.primefaces.model.charts.pie.PieChartModel;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.FuncionarioDTO;
import br.com.ec.domain.dto.consulta.ParametrosPeriodoDTO;
import br.com.ec.domain.model.tipos.TipoPeriodo;
import br.com.ec.domain.model.tipos.TipoProduto;
import br.com.ec.domain.service.FuncionarioService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class RelatorioAnaliticoBean
extends AbstractBean
<FuncionarioDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private List<FuncionarioDTO
> listaFuncionariosDTO
;
private Long sequencialFuncionarioSelecionado
;
private FuncionarioDTO funcionarioSelecionado
;
private ParametrosPeriodoDTO parametrosPeriodoDTO
;
private FuncionarioService funcionarioService
;
@Inject
public RelatorioAnaliticoBean
(FuncionarioService funcionarioService
) {
this.
funcionarioService = funcionarioService
;
}
@
Override
public GenericService
<FuncionarioDTO
> getService
() {
return null;
}
@
Override
public FuncionarioDTO getId
() {
return null;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
consultarFuncionariosAdmitidos
();
}
@
Override
public void limparEntidade
() {
setEntidade
(new FuncionarioDTO
());
setParametrosPeriodoDTO
(new ParametrosPeriodoDTO
());
// setFuncionarioSelecionado(new FuncionarioDTO());
setFuncionarioSelecionado
(null);
}
public List<FuncionarioDTO
> getListaFuncionariosDTO
() {
return listaFuncionariosDTO
;
}
public void setListaFuncionariosDTO
(List<FuncionarioDTO
> listaFuncionariosDTO
) {
this.
listaFuncionariosDTO = listaFuncionariosDTO
;
}
public Long getSequencialFuncionarioSelecionado
() {
return sequencialFuncionarioSelecionado
;
}
public void setSequencialFuncionarioSelecionado
(Long sequencialFuncionarioSelecionado
) {
this.
sequencialFuncionarioSelecionado = sequencialFuncionarioSelecionado
;
}
public FuncionarioDTO getFuncionarioSelecionado
() {
return funcionarioSelecionado
;
}
public void setFuncionarioSelecionado
(FuncionarioDTO funcionarioSelecionado
) {
this.
funcionarioSelecionado = funcionarioSelecionado
;
}
public ParametrosPeriodoDTO getParametrosPeriodoDTO
() {
return parametrosPeriodoDTO
;
}
public void setParametrosPeriodoDTO
(ParametrosPeriodoDTO parametrosPeriodoDTO
) {
this.
parametrosPeriodoDTO = parametrosPeriodoDTO
;
}
public TipoProduto
[] getTiposProduto
() {
return TipoProduto.
values();
}
/**********************************/
public void consultarFuncionariosAdmitidos
() {
setListaFuncionariosDTO
(funcionarioService.
consultarFuncionariosAdmitidos());
}
public void analisarFuncionario
() {
FuncionarioDTO funcionarioDTO = funcionarioService.
analisarFuncionario(getFuncionarioSelecionado
());
setFuncionarioSelecionado
(funcionarioDTO
);
}
public void gerarGraficosFuncionario
() {
if (getParametrosPeriodoDTO
().
tipoPeriodoEhPorMes()) {
}
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
);
}
}